2015-06-15 4 views
0

Мне нужно связать общий интерфейс с общей реализацией, используя Ninject.Extensions.Xml. Проект - проект .net mvc. Есть ли способ сделать это?Ninject generic type xml binding

Класс:

public class JsonProvider<T> : IJsonProvider<T> where T: new() 
{ 
    ... 
} 

конфигурации Xml (не работает):

<bind service="Base.IJsonProvider, Base" to="Base.JsonProvider, Base" 
    name ="Config"/> 
+0

Зачем вам нужно использовать XML? Конфигурация структуры DI с использованием XML является хрупкой, многословной и подверженной ошибкам. Рассмотрите возможность использования кодовых регистраций вместо этого и для всего, что на самом деле нужно изменить после развертывания, используйте только переключатели конфигурации в своем файле конфигурации вместо использования полностью определенных имен. – Steven

ответ

0

Вы хотите связать открытые универсальные типы, так что это определение типа следует сделать трюк:

<bind service="Base.IJsonProvider`1, Base" to="Base.JsonProvider`1, Base" 
    name ="Config"/> 
+0

Дает ошибку: Не удалось разрешить тип Base.IJsonProvider'1 [T], Base ', определенный в атрибуте' service '. – serefbilge

+0

Существует смешанная информация, которую я нахожу в Интернете, попробуйте обновленный ответ (введите объявления без '[T]') – dotnetom