【发布时间】:2011-09-12 06:50:46
【问题描述】:
我有几种方法看起来像这样:
public void foo()
{
try
{
doSomething();
}
catch(Exception e)
{
Log.Error(e);
}
}
我可以把代码改成样子吗?
[LogException()]
public void foo()
{
doSomething();
}
如何实现这个自定义属性?以及这样做的利弊是什么?
-----编辑 1------------
我可以自己实现吗,我的意思是只写一个类,还是我需要使用 postsharp 或其他解决方案?
【问题讨论】:
-
您必须实现基于属性的自定义拦截器。搜索这个。
-
我希望你的意思是
catch(Exception e) { Log.Error(e); throw; } -
@Henk 我的意思是没有投掷; (我在wcf服务有几个方法,不能把异常向上层抛出,会压垮我的程序)你有什么建议?
-
您似乎在要求 PostSharp 网站链接。
-
@Delash,只处理你知道的异常。您当前的代码正在崩溃,它只是没有告诉客户。
标签: c# attributes try-catch