Как сообщить AutoMapper 5 использовать StructureMap для построения служб без создания проблемы начальной загрузки, то есть new MapperConfiguration(cfg => cfg.ConstructServicesUsing(some_IContainer))
, когда конфигурация выполняется через StructureMap?Загрузочный автомодель и структураМатериалы через ConstructServicesUsing
Пользовательские преобразователи нуждаются в локаторе обслуживания, который будет использоваться 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?