我正在尝试编写和扩展方法,该方法采用 this 参数的类型并将其传递给通用类型的方法,即
public TDestination MethodName<TSource, TDestination>(this TSource obj)
{
return DestinationClass.DestinationMethod<TSource, TDestination>(obj)
}
我怎么能假设 this 参数的类型作为目标方法的类型在调用方法时定义 TSource 是可能的
澄清:我想创建一个辅助方法,以便我可以直接从对象调用 MethodName 并使用具有 2 种类型的预先编写的泛型方法,因此我想将其缩短为单个目标类型,并让该方法假定对象的类型为传递给扩展方法
使用示例:即 AutoMapper 扩展示例
原始方法调用:
var person = _db.People.Single(q=>q.Id == 5);
//use automapper directly to map object
return Mapper.Map<Person, PersonDisplay>(person);
我想把它缩短到
var person = _db.People.Single(q=>q.Id == 5);
//use extension method to map
return person.MapTo<PersonDisplay>()
想把它缩短到