是否可以创建一个自定义功能来捕获由自定义属性设置的方法中发生的异常?
我打算做这样的事情:
[Logging(FeatureEnum.SomeFeature, IntentEnum.SomeIntent, "some comment")]
public void SomeMethodThatDoesATask()
{
try
{
var doSomeAction = new LazyProcess();
doSomeAction.WhoDunnit();
}
catch(Exception ex)
{
StaticMethodThatDoesLogging.CatchError(ex);
}
}
问题是:
如何捕获放置此属性的方法名称以及引发的事件?它可以捕获异常,也可以自动记录调用此方法的情况。
这是不容易实现的。例如TypeMock http://www.typemock.com/使用.NET框架分析器API来监视应用程序的执行。它允许您注册不同的事件,并在调用方法、发生异常时收到通知……但这不是一件容易的事。
另一方面,您可以使用 AOP,但它要求您修改代码,以便调用者使用一些生成的代理而不是真正的类。Spring.NET http://www.springframework.net/doc/reference/html/aop-quickstart.html有一些不错的功能。
因此,基本上,如果不使用 .NET 框架 Profiler API 或不编写一些使用反射从给定类读取这些属性的自定义代码,您就无法实现这一目标。属性只是类元数据,如果没有任何可以理解它们的东西,它们就什么也做不了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)