У меня есть интерфейс, который принимает универсальный тип
interface IIFace<T>
Тогда у меня есть несколько реализаций
public class IFaceImp1 : IIFace<MyObj> {}
public class IFaceImp2 : IIFace<MyObj> {}
Я определил модель представления, которая вставляет в нее объект этого интерфейса для определенного типа ...
public MainViewModel(IIFace<MyObj> scrapper) { }
А потом я настраиваю Unity, чтобы заполнить его
<containers>
<container>
<register type="IIFace[MyObj]" mapTo="IFaceImp1">
<constructor>
<param name="loc" value="i am just a mock">
</param>
</constructor>
</register>
</container>
</containers>
Это отлично работает
Проблема в том, что теперь я хотел создать именованные регистрации, чтобы потом я мог разрешить их по имени ... Поэтому я назвал его и сначала создал еще одну, но она не работала. Я уменьшил проблему до этого:
<containers>
<container>
<register type="IIFace[MyObj]" mapTo="IFaceImp1" name="FirstImplementation">
<constructor>
<param name="loc" value="i am just a mock">
</param>
</constructor>
</register>
</container>
</containers>
Что также не работает ... при попытке Разрешить <> ("Первая реализация"). Однако, если я удаляю атрибут name и использую перегрузку Resolve <> (), он работает нормально ..
Любые идеи о том, что может случиться, что это имя не работает ??