Jon*_*and 5 .net c# code-generation
我正在研究需要接受合同(指定为接口)的东西,并动态创建一个实例,没有任何符合此接口的正式定义的具体类.
语法的一个例子是这样的:
IExampleMessage message = MessageBuilder.Create<IExampleMessage>(x => {
x.PropertyA = "Test";
x.PropertyB = 5;
});
Run Code Online (Sandbox Code Playgroud)
我已经看到其他.NET库和框架提供这样的行为(NServiceBus浮现在脑海中),我想知道是否有第三方库抽象出运行时代码.我认为Castle DynamicProxy是一个值得关注的地方,但这似乎完全集中在代理和拦截上,并且似乎没有公开代码生成方面.
我可以编写一个使用Reflection.Emit来实时创建类的实现,但是我宁愿使用一个可靠的开源库(如果存在的话).
有什么建议?
模拟库 - NMock 和 RhinoMocks 怎么样?
您也可以使用存根/期望将实现添加到具体类型。
Rhino 特别有一个很好的基于 lambda 的语法来满足你想要的那种东西。
这还不能完全满足您的需求吗?
像这样的东西吗?
IExampleMessage message = MockRepository.GenerateStub<IExampleMessage>();
message .Stub(x => x.PropertyA).Return("Text")
message .Stub(x => x.PropertyB).Return(5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |