【发布时间】:2011-09-11 23:45:15
【问题描述】:
我试图在运行时从程序集列表中找到一个类型;我的代码是这样的:
foreach (Assembly assembly in assembliesToSearch)
{
Type t = assembly.GetType(assemblyName);
if (t != null)
{
return t;
}
}
,我遇到的问题是 t 总是出现为空。在 VS2010 中使用调试器和中间窗口,当我在循环中放置断点时,我注意到以下内容:
Type.GetType(typeof(MyNamespace.MyClass).AssemblyQualifiedName)
工作正常,但是
assembly.GetType(typeof(MyNamespace.MyClass).AssemblyQualifiedName)
没有(当程序集是我知道的包含我正在寻找的类的程序集时 - 在调试器中,我可以监视 assembly.GetTypes(),浏览到我要实例化的类,并调用 assembly.GetType("MyNamespace.MyClass, MyNamespace"))。
有谁知道为什么使用 Type.GetType() 搜索所有程序集有效,但使用 assembly.GetType() 搜索我知道包含该类型的程序集却没有?
【问题讨论】:
标签: c# reflection