【问题标题】:Cannot implicitly convert type object to System.Reflection.Assembly无法将类型对象隐式转换为 System.Reflection.Assembly
【发布时间】:2012-09-17 13:50:26
【问题描述】:

请帮我解决这个错误:

无法将类型“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

【问题讨论】:

  • 尝试纠正括号匹配 typeof(System.Windows.Controls.UserControl).Name) 你缺少一个左括号 EX: typeof((System.Windows.Controls.UserControl).Name)跨度>
  • @Freeman 不,括号是正确的。第一个右括号属于typeof,第二个是CreateInstanceAndUnwrap的右括号。
  • 我不明白你在做什么。您似乎正在新域中创建UserControl,然后将其存储在Assembly 类型的变量中。这对我来说没有意义。编辑:除此之外,您没有传递包含 UserControl 类型的程序集的程序集名称,因此无论如何它都不起作用。
  • CreateInstanceAndUnwrap 的返回值不是Assembly。那么,为什么你将testLibrary 声明为一个呢?

标签: c# .net reflection


【解决方案1】:

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

UserControl userControl = (UserControl) newDomainName.CreateInstanceAndUnwrap(
    assemblyName.Name, typeof(System.Windows.Controls.UserControl).Name);

【讨论】:

    【解决方案2】:

    尝试使用FullName 属性:

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

    编辑:

    也可以试试 assemblyName.FullName

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

    【讨论】:

      【解决方案3】:
      public Object CreateInstanceAndUnwrap(
          string assemblyName,
          string typeName)
      

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

      【讨论】:

      • “你需要一个类型”——嗯? testLibrary 被声明为具有 Assembly 类型。
      猜你喜欢
      • 2013-06-30
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      相关资源
      最近更新 更多