获取通用列表的类型

时间:2012-10-05 13:32:55

标签: c# generics

在下面列出的代码中,我需要确定TSource的类型。解析参数可以是,例如IList,或者只有Car等。在方法Model.Map<>中我需要解析类型的泛型类型。当解析参数是单个对象(Car,Boat ......)时,一切正常。问题是解析集合时。因此,我需要在参数收集时覆盖案例。

public class Convert<TSource, TDestination>
{
    public static TDestination ToModel(TSource source)
    {
        Model.Map<TSource, TDestination>();
    }
}

2 个答案:

答案 0 :(得分:4)

您可以尝试 - 基于GetGenericArguments

var type = source.GetType().GetGenericArguments()[0];

链接:http://msdn.microsoft.com/fr-fr/library/system.type.getgenericarguments.aspx

答案 1 :(得分:0)