我想创建一个我想要应用于类的属性.在这个类中,如果调用了一个方法,在postharp 的OnEntryand OnExitmethodof中,我想记录确切的方法名,如下所示:
"GetPartners开始......"
要么
"GetPartners完成......"
或者如果发生异常:
"在GetPartners方法中出现异常"
这有什么解决方案吗?
有几个选项可用于启用方法跟踪.
首先,您可以使用现有的PostSharp诊断模式库,只需添加和配置该[Log]库中的属性:添加详细跟踪.
如果要创建自己的属性,可以在此处找到一个示例:"PostSharp.Samples.CustomLogging".
基本上你需要从类派生OnMethodBoundaryAspect和重写方法OnEntry,OnExit,OnException写你的消息.
为了获得更好的性能,您可以在编译时准备相应的消息,并在运行时在处理程序中重用它们,如示例所示:
public override void CompileTimeInitialize(MethodBase method, AspectInfo aspectInfo)
{
string methodName = method.DeclaringType.FullName + "." + method.Name;
this.enteringMessage = "Entering " + methodName;
this.exitingMessage = "Exiting " + methodName;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4042 次 |
| 最近记录: |