除了PostSharp之外,.NET中还有什么办法可以进行基于属性的日志记录

时间:2016-05-20 09:01:01

标签: .net aop postsharp

我想在我的代码中使用类似PostSharp的功能,例如onEntry和函数属性调用的onExit方法。是否有同样的替代方案?

不能使用PostSharp,因为它不是开源的,我不能在我的项目中使用第三方库。

2 个答案:

答案 0 :(得分:0)

我并不知道像postharp那样强大的东西。

如果免费版本的postsharp不能满足您的需求,还有一些其他框架需要考虑,比如统一

https://msdn.microsoft.com/en-us/magazine/gg490353.aspx

然而,如果postharp是透明的,那么unop就不是。它只适用于统一截取的接口(并以正确的方式截获)。此外,如果我没记错的话,还有一些其他的限制,比如如果我没记错的话,它会对实体框架中的跟踪实体发挥很好的作用。

另一种免费方式是你可以编写linq扩展名。它不是aop,但你可以编写像

这样的代码
Linqhelper.log().cache().execute(some method)

也不像postharp那样透明,但它可能适合您的需求。

答案 1 :(得分:0)

您可以使用MrAdvice.Sharp。 尽管PostSharp更好,但是MrAdvice.Sharp是免费的,它可以满足您的需求。 Postsharp的用法几乎相同。