正確にコンテナが必要だと思いますか?おそらくthis postにはいくつかの有用な情報が含まれています。
これは、コンマンドを処理するコンテナにとらわれない方法を説明しています。
更新
あなたはこのような何かがしたい意味:登録はのStructureMapのの機能の多くを提供Unityのためのカスタム設定エンジンを使用していることを
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);
をconfig。
アップデート2
コードサンプルは、私のpet project on codeplexの一部です。上記のスニペットは、TecX.Unity.Configuration.Testプロジェクトの中にあります。
これはおそらくUnityで達成するのが非常に難しいでしょう。こちらをご覧ください:http://stackoverflow.com/questions/9813630/how-to-do-open-generic-decorator-chaining-with-unity-unityautoregistration – Steven