为什么Assembly.GetType()找不到我的类?

Sha*_*ica 6 c# reflection

代码摘录:

var a = Assembly.LoadFile("MyAssembly.dll");
var t = a.GetType("MyNamespace.MyClass", false);
Debug.Assert(t != null); // fails
Run Code Online (Sandbox Code Playgroud)

Assembly.LoadFile()正在加载程序集没有任何问题,但Assembly.GetType()返回null,即使我已经验证MyNamespace.MyClass存在并正确拼写.

任何其他想法为什么会这样?

Han*_*ing 10

在线

var t = a.GetType("MyNamespace.MyClass", false);
Run Code Online (Sandbox Code Playgroud)

设置该布尔值,true以便您获得可以解释问题的异常.对于各种问题情况,您会收到单独的异常,请参阅MSDN或新文档.


Sha*_*ica 5

实际的潜在问题是MyAssembly.dll另一个依赖OtherAssembly.dll.一旦我OtherAssembly.dll在调用程序集中包含引用,一切正常.

  • @Oskar - 我发布了它,因为得到的答案是关于*如何*找到问题; 我的答案是*问题是什么,所以我认为值得单独发布. (3认同)