У меня есть две реализации интерфейса IJsonConverter<T>
. Одна реализация предназначена для базового класса с именем Vehicle
, то есть для IJsonConverter<Vehicle>
, а другая реализация предназначена для подкласса до Vehicle
, называемого Car
, который является реализацией для IJsonConverter<Car>
. Когда я пытаюсь внедрить реализацию для IJsonConverter<Car>
, я получаю исключение, я предполагаю, что StructureMap не знает, какую реализацию выбрать.
Можно ли настроить StructureMap для выбора реализации подкласса каким-либо образом?
Я настроил StructureMap следующим образом:
...
assemblyScanner.ConnectImplementationsToTypesClosing(typeof(IJsonConverter<>));
...
Я использую следующие классы:
Базовый класс
public class Vehicle {}
Подкласс
public class Car : Vehicle {}
Преобразователь базового класса
public class VehicleJsonConverter : IJsonConverter<Vehicle> {}
Преобразователь подкласса
public class CarJsonConverter : IJsonConverter<Car> {}
Сообщение об ошибке:
StructureMap.StructureMapConfigurationException: экземпляр по умолчанию не зарегистрирован и не можетбыть автоматически определено для типа 'IJsonConverter'
Экземпляр по умолчанию не указан. Текущая конфигурация для типа IJsonConverter:
PluginType ... Description
IJsonConverter<Car> WebApplication.Json.Converters.VehicleJsonConverter
WebApplication.Json.Converters.CarJsonConverter