我的应用程序之外有重试码逻辑,使用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,
答案 0 :(得分:0)
Assembly assembly = Assembly.LoadFile("Libtest.dll");
TestLib lib = (TestLib)assembly.CreateInstance("Lib");
lib.doSomething();
Lib类必须实现TestLib接口,并且必须同时可以从Foo.dll和bar.dll访问。