Для MVC3, StructureMap 2.6.1
Базовые регистрации / использование в App1
For<IMyRepository<MyRequest, MyResponse>>().Use<MyRepository>();
public class MyRepository : IMyRepository<MyRequest,MyResponse>
var foo = ObjectFactory.GetInstance<IMyRepository<MyRequest, MyResponse>>();
Возвращает MyRepository, как и ожидалось ..., переопределение App2попытка
ПРИМЕЧАНИЕ: App2 регистрируется после того, как App1
public class MyOverriddenRepository : MyRepository
For<IMyRepository<MyRequest, MyResponse>>().Use<MyOverriddenRepository>();
var overriddenFoo = ObjectFactory.GetInstance<IMyRepository<MyRequest, MyResponse>>();
overriddenFoo имеет тип MyRepository, а не MyOverriddenRepository, почему ??
пробовалтакое же переопределение в App1 и Foo возвращает MyOverriddenRepository
WhatDoIhave в приложении 1
IMyRepository`2<MyRequest, MyResponse> (IMyRepository`2<MyRequest, MyResponse>)
408858... Configured Instance of MyOverriddenRepository, ...
Scoped as: Transient
20ebeb... Configured Instance of MyRepository, ...
976143... Configured Instance of MyRepository, ...
408858... Configured Instance of MyOverriddenRepository, ...
WhatDoIhave в приложении 2
IMyRepository`2<MyRequest, MyResponse> (IMyRepository`2<MyRequest, MyResponse>)
976143... Configured Instance of MyRepository, ...
Scoped as: Transient
976143... Configured Instance of MyRepository, ...
408858... Configured Instance of MyOverriddenRepository, ...
Какой способ дальнейшей диагностики?Пытаетесь увидеть, если ошибка структуры карты или моя?