【发布时间】:2015-04-03 04:50:30
【问题描述】:
我正在使用通过静态类提供服务的第 3 方程序集:
Foo.Bar.StaticLibraryClass.Start();
var x = Foo.Bar.StaticLibraryClass.GetSomeStuff();
Foo.Bar.StaticLibraryClass.Stop();
如果类不是静态的,我可以通过动态类型变量使用它的实例:
dynamic lib = new Foo.Bar.NotStaticLibraryClass();
lib.Start();
var x = lib.GetSomeStuff();
lib.Stop();
不幸的是,这个类是静态的。有没有我可以写的等价物让我以同样的方式工作?
dynamic lib = /* ??????? */
lib.Start();
var x = lib.GetSomeStuff();
lib.Stop();
(为什么我想要使用dynamic 变量来访问一个完美的.NET 类型?实际上有多个版本的库DLL,我必须识别并加载合适的一个在运行时。不同的 DLL 公开相同的类型和方法名称,但它们确实继承自任何公共接口。因此,如果我能找到一种使用动态类型的方法,它将使我免于编写大量繁琐的反射代码来使用DLL 的方法。)
【问题讨论】: