.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;}
}
就我个人而言,我会将它们重命名为更有意义,但这不会改变它们的工作方式。
我正在尝试将对象列表转换为数据表,并正在使用此响应中给出的解决方案 。
我下载了 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;}
}
就我个人而言,我会将它们重命名为更有意义,但这不会改变它们的工作方式。