我在Assembly.LoadFrom()方法上遇到了一些问题。
在代码中,我的WinForm应用程序使用Assembly.LoadFrom()方法加载DLL文件,它将尝试使用GetTypes()方法获取类,并使用foreach获取每个类名以匹配输入string,指定类名。
情况是:(声誉不足,请参阅此处的UML草案:http://imgur.com/qNWcB7X)
该应用程序使用了Assembly.LoadFrom() Dll_X ,其中包含 ClassA 和 ClassB 。 ClassB 使用解决方案中另一个引用的 Dll_Y 文件中的某种方法,但 ClassA 没有。这两个班是独立的。
我偶尔会发现,如果我从包含 Dll_X 的文件夹中删除 Dll_Y 文件,并打算仅在运行时使用 ClassA ,会有一个LoaderException - 找不到 Dll_Y 。我想知道 ClassA 没有使用 Dll_Y 中的任何方法而且我没有创建 ClassB ,为什么应用程序试图找到 > Dll_Y 是?
更令人困惑的问题是:我在同一 Dll_X 中再次尝试了 ClassC ,它在引用文件中使用了一些方法 Dll_Z ,我相信这三个类是独立的。当我删除 Dll_Z 并尝试创建 ClassA 时,一切正常。
有人可以告诉我哪里可能有问题,或者就这种情况给出一些指示?非常感谢!