У меня есть интерфейс и реализацию следующим образом:Вложенные Дженерики Регистрация с помощью файла конфигурации Unity
public interface IDataProcessor<T, U>
{
U Process(T data);
}
public sealed class CustomDataProc: IDataProcessor<List<string>, Dictionary<string, Dictionary<string, List<string>>>>
{
...
}
Когда я зарегистрировать эту реализацию с использованием традиционного стиля, как показано ниже, все решает в порядке и в порядке.
container.RegisterType<IDataProcessor<List<string>, Dictionary<string, Dictionary<string, List<string>>>>, CustomDataProc>();
Теперь, при использовании XML, как показано ниже регистраций (т.е. позвонить в container.LoadConfiguration (раздел)) проходит, но при разрешении корневого объекта он терпит неудачу.
<typeAliases>
<typeAlias alias ="Dictionary" type ="System.Collections.Generic.Dictionary`2, mscorlib" />
<typeAlias alias ="List" type ="System.Collections.Generic.List`1, mscorlib" />
...
</typeAliases>
<container>
<register type="IDataProcessor[List[string], Dictionary[string, Dictionary[string, List[string]]]]" mapTo="CustomDataProc"/>
...
</container>
Это с ошибкой
"Resolution of the dependency failed, type = ...
while resolving.\r\nException is: InvalidOperationException - The current type,
IDataProcessor`2[System.Collections.Generic.List`1[System.String],System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.String]]]],
is an interface and cannot be constructed. Are you missing a type mapping?
Я думаю, что это что-то делать с вложенными дженериков, так как один из других моих отображения типа с одним родовым работал отлично.
Любая идея, как это можно решить успешно?
Благодаря
Благодаря выглядит в регистрации и вам нужен задний тик ('). Работает сейчас! –