Я использую вложенный контейнер для предоставления доступа к контекстным элементам, как указано здесь .
В Application_Start я создаю свои карты в похожей усадьбе:
Mapper.CreateMap<MyObject, MyMappedObject>()
.ForMember(dest => dest.Url, opt => opt.ResolveUsing<MyResolver>());
public class MyResolver<MyObject, string> {
protected override string ResolveCore(MyObject source) {
var urlHelper = ObjectFactory.Container.GetNestedContainer().GetInstance<UrlHelper>();
return urlHelper.GetMyUrl(source);
}
}
К сожалению, он получает доступ только к контейнеру, а не к вложенному контейнеру. Можно ли получить доступ к контекстным элементам в пользовательском распознавателе? Если так, есть ли хороший способ сделать это с StructureMap?
В качестве примечания я могу получить доступ к вложенному контейнеру в пользовательском преобразователе с помощью коллекции HttpContext.Current.Items. Это кажется мне нежелательным методом.