我有WCF服务,它有例外政策,比如
[ExceptionShielding("WCFErrorHandling")]
public class Service : IService
{
public void Oepration1(long userId)
{
try
{
//Logic here
}
catch (BusinessException ex)
{
throw new FaultException<BusinessFault>(new BusinessFault() { Message = ex.Message });
}
}
}
BussinesException
,是我的类,可以使用属性userId
进行扩展。
在Global.asax
中,我有ExceptionManager
ExceptionManager mgr = fact.CreateManager();
ExceptionPolicy.SetExceptionManager(mgr);
那么,然后抛出BussinesException
,一切都很好,我可以在BussinesException
时刻将userId放入throw
构造函数中,但是当发生类型的异常时:
System.Reflection.TargetInvocationException
无法添加 userId字段,因为TargetInvocationException
是在Exception中构建的。我可以覆盖它,但我的项目有太多例外。
所以,我需要知道,userId在每个例外情况下,你会向我推荐什么?