У меня есть интерфейс, похожий на этот:
interface IGenericSetupViewModel<T>
Затем у меня есть реализация по умолчанию этого, что-то вроде этого
class GenericSetupViewModel<T> : IGenericSetupViewModel<T>
Для некоторых конкретных классов у меня есть конкретная реализациянапример:
class ContractSetupViewModel : GenericSetupViewModel<Contract>
Теперь я хочу, чтобы StructureMap возвращал правильный экземпляр, когда запрашиваю
ObjectFactory.GetInstance<GenericSetupViewModel<Contract>();
Я хотел бы получить ContractSetupViewModel, когда запрашивал что-то еще,Я хотел бы получить экземпляр
GenericSetupViewModel<T>
Я пытался сделать это:
StructureMap.ObjectFactory.Configure(x =>
{
x.Scan(y =>
{
y.TheCallingAssembly();
y.AddAllTypesOf(typeof(IGenericSetupViewModel<>));
y.ConnectImplementationsToTypesClosing(typeof(IGenericSetupViewModel<>));
});
});
Однако это приводит к тому, что я всегда получаю GenericSetupViewModel, а не ContractSetupViewModel.Я не хочу указывать все конкретные видовые модели, так что, в любом случае, я могу заставить это сканирование работать?