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類似的事情,可能是這將有助於太。 –