无法转换从我的应用程序外部返回的对象

时间:2012-11-19 08:21:12

标签: c# casting .net-assembly

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

我在app中引用了相同的程序集。我使用Add Refferences创建的。

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

  

[A] SampleAssembly1.Class1无法强制转换为[B] SampleAssembly1.Class1。类型A源自'SampleAssembly1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文'LoadNeither'位置'C:\ Users \ v-saabdu \ Desktop \ RetryMethod \ ReflectionSamples \ SampleAssembly1 \ Final Code斌\调试\ SampleAssembly1.dll”。类型B源自'SampleAssembly1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文'Default'位置'C:\ Users \ v-saabdu \ Desktop \ RecodeMethod \ ReflectionSamples \ ReflectionAssembly \ BIN \调试\ SampleAssembly1.dll”。

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

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

Thankx,

1 个答案:

答案 0 :(得分:0)

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

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