基本上我有这样的课:
public class A
{
public A()
{
}
public Guid Key { get; set; }
public long PrimaryId { get; set; }
public bool IsActive { get; set; }
public Dictionary<string, string> Dict { get; set; }
public Dictionary<int, string> Dict1 { get; set; }
}
根据此处的答案,我可以使用非常适用于非嵌套集合的 TypeDescriptor。对于嵌套集合和字典,我使用如下方法:
private static bool IsEnumerable(PropertyInfo pi)
{
// note: we could also use IEnumerable (but string, arrays are IEnumerable...)
return typeof(ICollection).IsAssignableFrom(pi.PropertyType);
}
private static bool IsDictionary(PropertyInfo pi)
{
return pi.PropertyType.IsGenericType && pi.PropertyType.GetGenericTypeDefinition() == typeof(Dictionary<,>);
}
但是,如果有人可以帮助使用将通用列表转换为 DataTable 的方法。那挺棒的。