向 Fault 实体添加自定义属性

Adding custom properties to Fault entity

我想知道是否可以为故障消息配置额外的 属性?我有自己的异常类型,定义如下:

public class DomainException : Exception 
{
  public string Code { get; private set; } 
 ...
}

我有通用消费者处理发生的所有故障,但我不知道如何从故障实体中获取代码 属性。 Fault 实体包含有关抛出的异常类型、相关消息的信息,但遗憾的是缺少代码 属性。

是否可以将此信息传递给故障消费者?也许在 headers 里面?

如果您在异常中处于该业务逻辑级别,建议您自己捕获异常,并发布与您的业务上下文相关的您自己的域故障事件。例如,您可以定义自己的 DomainFault 类型:

public interface DomainFault : 
    Fault
{
    string Code { get; }
}

然后,您可以在您的消费者中使用 try/catch 处理程序自行发布它,或者您可以为消费者管道创建一个过滤器以将其用于多个消费者。