.net framework 4.5.2 的 HyperPropertyDescriptor 问题

HyperPropertyDescriptor issue with .net framework 4.5.2

我正在尝试将对象列表转换为数据表,并正在使用此响应中给出的解决方案 。

我下载了 hyperproperty 并将其重新编译为 4.5.2 并在我的应用程序中使用了它。当我执行该方法时,我得到了一列的空数据集。在调试时,我发现行

PropertyDescriptorCollection properties =
            TypeDescriptor.GetProperties(typeof(T));

正在提供计数为 0 的属性对象。
我尝试用

替换该行
PropertyDescriptorCollection properties =
            TypeDescriptor.GetProperties(data.First().GetType()); 

仍然没有运气。

有人可以帮忙吗?谢谢。

来自评论:

public class RequestData {
    public string d;
    public DataType t;
    public int i;
}

这些是字段,不是属性。 PropertyDescriptor 模型侧重于属性,坦率地说,public 字段只是一种反模式。考虑将这些变成属性。最简单的,在每个后面加上{get;set;},就大功告成了。

public class RequestData {
    public string d {get;set;}
    public DataType t {get;set;}
    public int i {get;set;}
}

就我个人而言,我会将它们重命名为更有意义,但这不会改变它们的工作方式。