0
我必须在传入消息之前验证传入的消息。 要做到这一点,我需要从数据库中请求一些数据。Masstransit过滤IoC注入/数据库
继教程之后,我创建了扩展方法来将我的规范+过滤器应用于使用者管道。事情是这样的:
public static void UseArticlesImportValidation(this IConsumePipeConfigurator configurator){}
public class ArticlesImportValidationSpecification : IPipeSpecification<ConsumeContext<ArticlesImportNotification>>
和筛选
public class ArticlesImportValidationFilter : IFilter<ConsumeContext<ArticlesImportNotification>>
一切看起来不错,但我想注入一些商务服务,我过滤器重复使用某些功能+ DAL服务。这对我的消费者使用Autofac扩展方法builder.RegisterConsumers(Assembly.GetExecutingAssembly());
完全正常。
我应该使用中间件吗?有什么建议么?
这就是我最终做到了,是什么让消费者内部验证的原因吗?或者有两个消费者?赢”它使信息的流动复杂化了吗? –
它取决于(tm)。在我的解决方案中,我实现了CQRS我需要发送一个有效的命令给我的域模型。这意味着发件人必须预先验证这些内容。在我有一些不受信任的发件人的情况下,我介绍了这种验证的中间步骤,但由于它不适用于所有人,因此总是运行此验证将是矫枉过正的。因此,我滑倒它。另外,如果验证失败,你会怎么做?如果你有一个消费者 - 你可以发回消息说“离开”,这是一个很好的做法。 –
@JevgenijNekrasov有在github问题https://github.com/MassTransit/MassTransit/issues/737类似的事情,可能是这将有助于太。 –