如何告诉 AutoMapper 5 使用 StructureMap 构建服务而不产生引导问题,即new MapperConfiguration(cfg => cfg.ConstructServicesUsing(some_IContainer))
当通过 StructureMap 进行配置时?
自定义解析器需要 AutoMapper 使用的服务定位器,但IContainer
在 AutoMapper 在 StructureMap 注册表中初始化时还不存在。静态ObjectFactory.Container
在 StructureMap 中已被弃用,所以我有一个惰性 ObjectFactory:
public static class ObjectFactory
{
private static readonly Lazy<Container> _containerBuilder =
new Lazy<Container>(defaultContainer, LazyThreadSafetyMode.ExecutionAndPublication);
public static IContainer Container
{
get { return _containerBuilder.Value; }
}
private static Container defaultContainer()
{
return new Container(x =>
{
x.AddRegistry<MyRegistry>(); // AutoMapper is configured here
});
}
}
我无法ObjectFactory.Container
从 AutoMapper 配置文件中引用,因为我得到堆栈溢出或“在惰性工厂中引用的值”。
.ConstructUsing(some_IContainer)
配置 AutoMapper 后有什么办法吗?