我期待在增加逻辑来我就这一工作将需要一个动态代理需要的库。 我想获得来自用户的一些建议已经谁在生产环境中使用这两个库的。 难道一出来执行其他的,都没有任何缺点的这使你有切换到其他等,基本上告诉我与图书馆的经验。 这些问题的答案将帮助我决定使用哪一个。
- 编辑 -
我忘了提,我发展将支持单声道库,因此任何知识,你可以分享两个库及其对单的支持将是巨大的也是。
我期待在增加逻辑来我就这一工作将需要一个动态代理需要的库。 我想获得来自用户的一些建议已经谁在生产环境中使用这两个库的。 难道一出来执行其他的,都没有任何缺点的这使你有切换到其他等,基本上告诉我与图书馆的经验。 这些问题的答案将帮助我决定使用哪一个。
- 编辑 -
我忘了提,我发展将支持单声道库,因此任何知识,你可以分享两个库及其对单的支持将是巨大的也是。
我的提交城堡,有助于动态代理,所以我可能会有所偏差,但我普遍认为城堡的动态代理是好得多的解决方案。 我在这里谈论李林甫DynamicProxy V1.0,因为这是我所熟悉的。 LinFu.Proxy 2是基于Mono.Cecil能,并从从头开始重写。
invocation.Proceed();
对于李林甫,它看起来像这样(实际方法/因为我从记忆写它的属性名称可能有所不同)
//invocation.TargetMethod is MethodInfo, so you're using reflection
invocation.TargetMethod.Invoke(invocation.Target,invocation.Parameters);
性能问题,通过对方的回答中提到不DynamicProxy问题,但在微软的落实BCL的错误的结果(Mono上不存在这样的问题BTW)。 当你有一个ModuleScope很多(超过200 +)代理类型这只表现。
解决办法是微不足道的 - 不会产生很多的代理类型(通常你不会有),或使用许多ModuleScopes / ProxyGenerators(例如Rhino.Mocks使用此方法)
我个人不Mono上发展,所以我没有亲身经历,但有单声道使用城堡DP库,所以我想它工作得很好,我们没有得到任何compliaints。
由于我的基准几个月前,一直没有城堡DP的新版本(新版本在今年年底的目标)。 陈立夫有一个2.0的版本,但我不知道这是否是唯一的主干,或释放。 我不知道春天或统一。
李林甫比城堡代理生成一个更轻量级的代理生成。
决定哪些使用,说实话当它没有太大的差别。
据笔者,李林甫将大大优于城堡发电机,但在我自己的现实世界中使用的意见在速度上的差异是微不足道的。
话虽如此李林甫将超越城堡,我不知道任何事情城堡拥有它,所以我总是用李林甫。
我们在2.0.1与李林甫VS城堡一些PERF的问题。 http://niemware.blogspot.com/2009/11/nhibernate-21-performance-issues-with.html