这是错误:前置条件失败。:!IsConfigured无法配置已配置的环境。
public static void BootUp()
{
var config = new StructureMapConfiguration((i) =>
{
i.For<ICommandService>().Use(InitializeCommandService());
i.For<IEventStore>().Use(InitializeEventStore());
i.For<IEventBus>().Use(InitializeEventBus());
});
NcqrsEnvironment.Configure(config);
}当我尝试添加新数据时,我遇到了麻烦,它允许我只创建一个客户,但如果我尝试添加第二个客户,它将失败:
NcqrsEnvironment.Configure(config);我正在使用Ncqrs。
发布于 2010-10-15 02:24:52
if (!NcqrsEnvironment.IsConfigured)
NcqrsEnvironment.Configure(config);您应该添加一行then来检查它是否已经配置,如果没有配置,则应该配置它。
发布于 2011-02-21 02:19:26
如何调用BootUp()方法?
NCQRS网站上的文档示例从一个静态构造器调用了BootUp(),该构造器保证只调用一次。
但是,如果您不是从静态构造函数调用BootUp(),请注意"IsConfigured“值不是线程安全的,并且如果两个或更多线程尝试并行执行BootUp(),您仍然可能遇到原始异常,这在生产环境中很可能发生。
要么实现线程安全检查,要么为了安全起见从静态构造器运行它。
发布于 2011-03-01 00:20:06
您还可以使用Ncqrs.Environment.DeConfigure()方法。对于在Nancy下运行的web应用程序,这是我必须做的事情,因为Nancy目前几乎每个请求都会创建一个新的IoC容器。
如果我简单地检查IsConfigured,它会有两个不同的配置,彼此之间一无所知。
https://stackoverflow.com/questions/3936144
复制相似问题