1

伙计们,我正在尝试将遗留的棕地应用程序重构为带有命令和用于域修改的命令总线的 CQRS 架构。

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

我能找到的任何显示命令/总线解析的依赖容器的示例都是基于 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);

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


更新2

代码示例是我在 codeplex 上的宠物项目的一部分。上面的代码片段可以在TecX.Unity.Configuration.Test项目中找到。

于 2012-04-04T06:13:17.573 回答