1
我試圖編寫和推廣方法,它接受這個參數的類型,並將它傳遞到一般類型化的方法,即使用擴展參數的類型傳遞作爲泛型類型參數
public TDestination MethodName<TSource, TDestination>(this TSource obj)
{
return DestinationClass.DestinationMethod<TSource, TDestination>(obj)
}
哪有我假設這個參數的類型作爲目標方法的類型,這可能是在調用方法時定義TSource的可能性
說明:我想創建一個幫助器方法,以便我可以直接從對象中調用MethodName,使用2種類型的預先寫入的泛型方法,所以我想將其縮短爲單個目標類型和h AVE該方法假定對象的類型被傳遞到擴展方法
使用例:即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>()
要縮短這
你的問題真的不清楚 - 恐怕我不知道你在問什麼。請編輯並澄清。 – 2013-04-05 21:03:32
我想你可以調用'someTSourceObj.MethodName()'並跳過顯式聲明'TSource'就像:'someTSourceObj.MethodName ()'? –
2013-04-05 21:04:39
我更新了一個使用示例,我想要做什麼 – 2013-04-05 21:24:49