C#如何在运行时动态生成实现不同接口的对象?

Tim*_*sig 5 c# interface dynamic

我正在研究如何解决问题,我甚至不确定在C#和.NET 3.5中这可能是完全可能的:

假设我的接口数量有限,每个接口都描述一组特定的,不相关的方法.现在我有一些现实世界的设备,每个设备可能只实现这些接口的一个子集.

在使用这些设备建立通信期间,他们会告诉我他们拥有哪些功能.我现在想创建一个实现接口的对象(每个接口类似于设备的一个功能),以便在我的应用程序架构中更高,我能够:

  • 针对上述接口编写代码
  • 测试生成的对象是否实现某个接口以查看是否支持某些操作

我根本不确定使用哪种方法解决这个问题.任何评论或方法最受欢迎!

Rub*_*ink 5

使用模拟框架,如Moq,RhinoMocksTypeMock Isolator

如果你想做一些较低级别的事情,像Castle DynamicProxy这样的东西可能是你的好方向.

  • 搜索鸭子类型也可能产生结果. (2认同)

R. *_*des 3

尝试类似LinFu.DynamicObject的东西。