在直接引用其他dll的不同dll中调用方法会导致在原始调用中出现引用错误
本文关键字:调用 dll 引用 原始 错误 方法 其他 | 更新日期: 2023-09-27 18:03:48
在应用程序中调用
Essentials.Class.LoadProgressIndicater(parent)
直接方法失败
LoadProgressIndicater(object parent)
{
var temp = parent as XtraForm; //XtraForm third party control/dll
}
间接方法有效
LoadProgressIndicater(object parent)
{
_LoadProgressIndicater(parent);
}
_LoadProgressIndicater(object parent)
{
var temp = parent as XtraForm; //XtraForm third party control/dll
}
为什么会发生这种情况,有没有更清晰的方法?
<标题> 错误类型在未引用的程序集中定义。必须添加对程序集
标题>已解析
具有相同数量实参的构造函数必须通过隐式转换求值,以确定哪个函数成员(构造函数)更好。
这就是为什么我需要将引用添加到第二个项目中,以便编译器可以确定哪个构造函数更好。
如果构造函数没有相同数量的实参,则不需要求值,编译器也不需要对第二个工程的引用。
<标题> 解决方案只用一个方法处理所有实例
public static void LoadProgressIndicator(object parent_control)
{
if (parent_control is XtraForm)
LoadProgressIndicator(parent_control as XtraForm, null, null, null);
else
{
if (parent_control is XtraUserControl)
LoadProgressIndicator(null, parent_control as XtraUserControl, null, null);
else
{
if (parent_control is System.Windows.Forms.Form)
LoadProgressIndicator(null, null, parent_control as System.Windows.Forms.Form, null);
else
LoadProgressIndicator(null, null, null, parent_control as System.Windows.Forms.UserControl);
}
}
}
标题>