這應該是一個非常快速的問題。我正在嘗試學習CQRS模式,但有一點不清楚。有兩個調度程序:用於命令和查詢。他們都需要注入DI內核才能獲得適當的處理程序。例如:具有依賴注入的CQRS
var handler = _resolver.Resolve<IQueryHandler<TQuery, TResult>>();
是不是違反DI的概念,解決不應該被用來,一切都應該與構造函數/屬性注入?
有一個更大的例子:http://www.adamtibi.net/06-2013/implementing-a-cqrs-based-architecture-with-mvc-and-document-db
請看看這個方法:
public void Dispatch<TParameter>(TParameter command) where TParameter : ICommand
{
var handler = _kernel.Get<ICommandHandler<TParameter>>();
handler.Execute(command);
}
我發現在3次不同的頁面此解決方案。爲什麼這樣做而不是創建一個將Query映射到QueryHandler的工廠?
http://blog.ploeh.dk/2011/09/19/MessageDispatchingwithoutServiceLocation –
順便說一句,這是CQS而不是CQRS – MikeSW