Справочная информация
У меня есть существующий объект конфигурации Unity с моими зарегистрированными интерфейсами и конкретными классами, которые мне нужно переместить в эквивалент на основе .config xml.
Один из зарегистрированных интерфейсов использует обобщенный тип c, соответствующий класс затем реализует интерфейс вместе с типом T, установленным в интерфейсе.
Код
Текущий C# Контейнер Unity:
container.RegisterType<ITaskModelAdapter, TaskModelAdapter>();
container.RegisterType<ITaskManager<ITaskModelAdapter>, TaskManager<ITaskModelAdapter>>();
Файл Unity .config:
<register type="TestProj.ContentManagement.Tasks.Adapters.ITaskModelAdapter, TestProj" mapTo="TestProj.ContentManagement.Tasks.Adapters.TaskModelAdapter, TestProj" />
<register type="TestProj.ContentManagement.Tasks.Managers.ITaskManager`1[TestProj.ContentManagement.Tasks.Adapters.ITaskModelAdapter], TestProj" mapTo="TestProj.ContentManagement.Tasks.Managers.TaskManager`1[TestProj.ContentManagement.Tasks.Adapters.TaskModelAdapter], TestProj" />
Проблема
В настоящее время я являюсь получаю следующее сообщение:
The type name or alias TestProj.ContentManagement.Tasks.Managers.ITaskManager`1[TestProj.ContentManagement.Tasks.Adapters.ITaskModelAdapter], TestProj could not be resolved. Please check your configuration file and verify this type name.
Я не могу получить интерфейс с его типом generi c, сопоставленным с конкретным экземпляром. Я считаю, что я настроил это правильно, поскольку существует только 1 тип c, который является интерфейсом ITaskModelAdapter
.
Я искал SO на предмет существующих проблем по этому вопросу, но пробованные решения не сработали для этой ситуации.
Если кто-нибудь может указать мне правильное направление относительно того, почему это не разрешит, это будет очень цениться.