.net动态代理的成本



使用动态代理的成本是多少?

我不想让我的项目与接口实现混乱,所以我正在考虑使用一些第三方库创建的动态代理,如LinFu, Castle, Unity等。它们是为每个接口生成一个实例,还是为每个调用生成一个实例?

这是一个web应用程序,所以从长远来看,性能问题是什么?

我也在使用EF 4.1(目前CTP5),所以它自己创建代理类,这让我想知道我是否可以使用EF自己的动态代理创建工具。

注:是的,我的接口是由具体类以及其他接口和基类实现的,但有时我只需要其中的接口部分,而不需要具体类附带的额外内容。

所有接口只声明EF4.1 POCO的一部分。只有getter和setter

开源的即兴接口,需要c# 4.0,并为你使用的每个接口和实现类型组合创建一个轻量级代理类型,并将它们缓存。

因此,围绕给定实现创建接口代理(无论如何设置ExpandoObject都将其视为一种类型)将有一次生成代理类型Activator的成本。

创建实例,每次你做一个代理(这是不坏的),并为每个调用将有一个静态调用,这是你没有代理+ dlr动态调用,这是非常优化感谢微软。

看起来您需要更多的存根而不是动态代理。也许你想看看Moq。据我所知,每次创建mock时它都会创建一个不同的实例,但不知道它是否在内部保留了某种类型缓存。请注意,因为它是一个针对单元测试的库,所以这种用法可能是不正统的。

相关内容

  • 没有找到相关文章

最新更新