コンテナはどこに必要だと思いますか?たぶん、この投稿にはいくつかの有用な情報が含まれています。
コマンドを処理するコンテナにとらわれない方法について説明します。
アップデート
あなたはあなたがこのようなものを持ちたいということを意味します:
var builder = new ConfigurationBuilder();
var convention = new CommandHandlerConvention().WithTransaction().WithDeadlockRetry();
builder.Extension<DecoratorExtension>();
builder.Scan(x =>
{
x.With(convention);
x.AssemblyContainingType(typeof(BarCommand));
});
var container = new UnityContainer();
container.AddExtension(builder);
ICommandHandler<BarCommand> barHandler = container.Resolve<ICommandHandler<BarCommand>>("BarHandler");
var command = new BarCommand();
barHandler.Handle(command);
Assert.AreEqual("-->Retry-->Transaction-->BarHandler", command.HandledBy);
この登録では、StructureMapの構成の多くの機能を提供するUnityのカスタム構成エンジンを使用します。
Update2
コードサンプルは、codeplexでの私のペットプロジェクトの一部です。上記のスニペットは、TecX.Unity.Configuration.Testプロジェクト内にあります。