【发布时间】: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