请帮我解决此错误:
无法将类型'object'隐式转换为'System.Reflection.Assembly'。存在显式转换(您是否错过了演员?)
谢谢!!!
CODE
var assemblyName = AssemblyName.GetAssemblyName(assemblyPath);
var ads = new AppDomainSetup
{
ApplicationBase = AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
DisallowCodeDownload = true
};
AppDomain newDomainName = AppDomain.CreateDomain("newDomainName", null, ads);
Assembly testLibrary = newDomainName.CreateInstanceAndUnwrap(assemblyName.Name,
typeof(System.Windows.Controls.UserControl).Name); // Here the error occures
答案 0 :(得分:3)
CreateInstanceAndUnwrap返回已创建类型的实例(上面代码中为System.Windows.Controls.UserControl
),而不是Assembly
。代码应该是:
UserControl userControl = (UserControl) newDomainName.CreateInstanceAndUnwrap(
assemblyName.Name, typeof(System.Windows.Controls.UserControl).Name);
答案 1 :(得分:0)
尝试使用FullName
属性:
typeof(System.Windows.Controls.UserControl).FullName
编辑:
也可以尝试assemblyName.FullName
根据msdn,两者都应该是全名。
答案 2 :(得分:0)
public Object CreateInstanceAndUnwrap(
string assemblyName,
string typeName)
它返回一个对象,你需要一个程序集,请重新检查。