我有一個對象集合,我將其作爲參數傳遞以創建另一種類型的對象(一對一)。我在很多地方都這樣做(基本上是從數據對象轉換爲業務對象)。我想寫一個通用的擴展方法來完成這個。但是我被卡住了,因爲我不知道如何指定約束條件,即業務對象具有以數據對象爲參數的構造函數。以下是我的功能代碼:爲通用參數指定構造函數約束
public static IList<T> ConvertTo<A,T>(this IEnumerable<A> list)
where T : new(A)/*THIS IS PROBLEM PART*/
{
var ret = new List<T>();
foreach (var item in list)
{
ret.Add(new T(item));
}
return ret;
}
是的界面方式很好,我可以使用它,因爲我使用T4模板來生成BO,所以不會太多的工作。 – TheVillageIdiot 2010-08-04 18:16:09