0

我在我的应用程序之外有重试代码逻辑,它使用Assembly.LoadFile(Asmpath); 加载程序集并将对象从加载的程序集中返回到我的应用程序。

我在应用程序中引用了相同的程序集。我使用添加引用创建的。

我能够返回对象。但是在我的应用程序中将返回的对象转换为其类型时,它会抛出以下错误:

[A]SampleAssembly1.Class1 不能转换为 [B]SampleAssembly1.Class1。类型 A 源自 'SampleAssembly1,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null',位于位置 'C:\Users\v-saabdu\Desktop\Final Code for RetryMethod\ReflectionSamples\SampleAssembly1\ 的上下文 'LoadNeither' 中bin\Debug\SampleAssembly1.dll'。类型 B 源自 'SampleAssembly1,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null',位于位置 'C:\Users\v-saabdu\Desktop\Final Code for RetryMethod\ReflectionSamples\ReflectionAssembly\ bin\Debug\SampleAssembly1.dll'。

从上面的错误消息中,我了解到在我的应用程序和重试代码(我的应用程序之外)中加载程序集的方式在上下文中有所不同。

任何人都可以建议我解决这个问题..

谢谢,

4

1 回答 1

0
Assembly assembly = Assembly.LoadFile("Libtest.dll");
TestLib lib = (TestLib)assembly.CreateInstance("Lib");
lib.doSomething();

Lib 类必须实现 TestLib 接口,并且必须可以从 Foo.dll 和 bar.dll 访问。

于 2012-11-19T08:35:18.143 回答