0

请帮我解决这个错误:

无法将类型“object”隐式转换为“System.Reflection.Assembly”。存在显式转换(您是否缺少演员表?)

谢谢!!!

代码

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
4

3 回答 3

3

CreateInstanceAndUnwrap返回创建类型的实例(System.Windows.Controls.UserControl在上面的代码中),而不是Assembly. 代码应该是:

UserControl userControl = (UserControl) newDomainName.CreateInstanceAndUnwrap(
    assemblyName.Name, typeof(System.Windows.Controls.UserControl).Name);
于 2012-09-17T14:00:00.917 回答
0

尝试使用FullName属性:

typeof(System.Windows.Controls.UserControl).FullName

编辑:

也试试 assemblyName.FullName

根据msdn,两者都应该是全名。

于 2012-09-17T13:52:17.970 回答
0
public Object CreateInstanceAndUnwrap(
    string assemblyName,
    string typeName)

它返回一个对象,您需要一个程序集,请重新检查。

于 2012-09-17T14:01:25.697 回答