在我们公开 WCF 服务的外部边界中,我们将所有内部异常转换为FaultException
. 这是一个手动过程,通常具有每个实现所特有的小缺陷。对于每个公开的方法,它已被复制/粘贴和无意识地修改(或忘记)。为了减少错误,我想创建一个可以捕获任何未处理异常的方面。
我们将内部异常映射到故障异常。如何将映射函数发送到方面?
如果我像这样向方面添加一个属性:
[Serializable]
public sealed class FaultExceptionConverter : OnExceptionAspect {
public Func<Exception, FaultException> FaultConverter { get; set }
}
我不能(正如属性限制所预期的那样)初始化它[FaultExceptionConverter(FaultConverter = MyConversionMethod)]
(在哪里MyConversionMethod
可以分配一些方法Func<Exception, FaultException>
)。有没有将这种类型的参数传递给方面的模式?许多类型可以传递到方面。这是个常见的问题吗?
如果碰巧有更好的方法来实现这一点,我将不胜感激。