在托管代码中,假设调用代码没有对该程序集的静态引用,如何在运行时从另一个程序集加载托管类型?
为了澄清起见,假设我将 Lib.cs 中的类 Lib 编译为 Lib.dll。我想在一个名为 Foo.dll 的单独程序集中编写一个类 Foo,它没有静态引用 Lib.dll,而是加载 Lib.dll,然后反映类 Lib 是否存在,然后调用一个方法在上面。
很抱歉提出这样一个关于反射的明显问题。我认为在论坛上获得答案所需的时间比阅读几篇文章要少得多。
这是一个简短的片段:
Assembly assembly = Assembly.LoadFile("Lib.dll");
ILib lib = (ILib)assembly.CreateInstance("Lib");
lib.doSomething();
当然,Lib 类必须实现 ILib 接口,该接口必须可以从 Foo.dll 和 Lib.dll 访问。这样你就实现了抽象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)