鉴于以下界面:
public interface ITest
{
string PropTest1 { get; set; }
int PropTest2 { get; set; }
}
如何创建一个动态代理类来实现接口ITest
并返回两个属性的值?
另外,对于生产系统来说这会慢吗?
由于
答案 0 :(得分:2)
如何创建动态代理类 这将实现接口 两者的ITest和返回值 特性
看看嘲笑图书馆,即犀牛嘲笑或Moq - 这正是这些允许你做的事情(然后是一些) - 无需重新发明轮子。
由于这是使用反射来创建代理,因此与常规代码相比,它将非常慢 - 这一切都取决于方案是否可接受。
答案 1 :(得分:0)
对于perf,生成类型可能需要一点时间,但是一旦你拥有它,制作它的实例不应该比制作任何其他类的实例慢得多。
如果你选择做自己的动态代理,你需要学习IL。反射器或类似工具是一种很好的方法。你可以编写你想要生成的代码,然后查看反射器中的IL
正如@BrokenGlass所说,有些图书馆可以做到这一点,但它有很好的学习经验:)