Я пытаюсь написать метод расширения со следующей подписью
public static D GetModelFor<S, D>(this S source)
where S : BusinessBase
У меня следующий класс
public class Order : BusinessBase
Я хочу иметь возможность вызывать метод расширения в экземпляреКласс заказа как
Order o = new Order();
SomeOtherClass s = o.GetModelFor<SomeOtherClass>();
Но это не работает.Компилятор C # просит меня указать оба типа S и D. В этом случае Order и SomeOtherClass.Я что-то здесь не так делаю?
======== Подробнее о внутренней реализации =========
public static D GetModelFor<S, D>(this S source)
where D : IMappingProvider, new()
{
D d = new D();
d.CreateMap();
return Mapper.Map<S, D>(source);
}
Здесь IMappingProvider
isинтерфейс, который дает классу способ зарегистрировать карты для автоматического отображения.Как видите, мне нужно набрать S
для использования в Mapper.Map<>