需要帮助使用Unity DI实现命令处理程序/总线

时间:2012-04-03 22:08:47

标签: dependency-injection unity-container structuremap cqrs

民间, 我试图通过命令和用于域修改的命令总线将遗留棕地应用程序重新分解为CQRS体系结构。

该应用程序很可能会在Asp.Net MVC3中实现。我的雇主更喜欢在MVC应用程序中使用Unity for DI。

我可以找到显示命令/总线解析的依赖容器的任何示例都基于Structuremap或Autofac,但是我需要在此实现中使用Unity。有没有人以这种方式使用Unity或知道任何例子?

1 个答案:

答案 0 :(得分:1)

您认为完全需要容器的地方在哪里?也许this post包含一些有用的信息。

它描述了一种与容器无关的处理命令的方法。


<强>更新

你的意思是你想要这样的东西:

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);

该注册使用Unity的自定义配置引擎,它提供了StructureMap配置的许多功能。


<强> UPDATE2

代码示例是我pet project on codeplex的一部分。上述代码段可以在 TecX.Unity.Configuration.Test 项目中找到。