1

皆さん、ドメイン変更用のコマンドとコマンド バスを使用して、従来のブラウンフィールド アプリケーションを CQRS アーキテクチャにリファクタリングしようとしています。

アプリケーションは、Asp.Net MVC3 で実装される可能性が高くなります。私の雇用主は、MVC アプリケーションでの DI に Unity を使用することを好みます。

コマンド/バス解決のための依存関係コンテナーを示す例はすべて、Structuremap または Autofac に基づいていますが、この実装では Unity を使用する必要があります。誰かがこの方法で Unity を使用したり、例を知っていますか?

4

1 に答える 1

1

コンテナはどこに必要だと思いますか?たぶん、この投稿にはいくつかの有用な情報が含まれています。

コマンドを処理するコンテナにとらわれない方法について説明します。


アップデート

あなたはあなたがこのようなものを持ちたいということを意味します:

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プロジェクト内にあります。

于 2012-04-04T06:13:17.573 に答える