Я сделал следующее:
container.Register(Component.For<Dictionary<string, string>>()
.Instance(ServiceDictionaryInstance)
.Named("serviceDictionary"));
Класс потребляет компонент:
public class BusinessService : IDecisionFilter
{
private readonly Dictionary<string, string> _ServiceDictionary;
public BusinessService(IOtherInterface otherService, Dictionary<string, string> serviceDictionary)
{
_OtherService = otherService,
_ServiceDictionary = serviceDictionary;
}
}
Тогда Castle не может разрешить компонент Dictionary:
Ошибка: NotImplementedException Метод или операция не реализованы.Ошибка: в Castle.MicroKernel.SubSystems.Conversion.GenericDictionaryConverter.PerformConversion (строковое значение, тип targetType)
Но если я создаю другой класс:
public class DictiornayType : Dictionary<string, string>
{
}
вместо исходного словарявсе решено правильно.
Имеет ли это какое-либо отношение к универсальному типу?
Пожалуйста, сообщите.