[英]Using Reflection to Get Class Property Information returning nothing
我的任务是更新大量具有相同数据类型的记录,并希望以这样的方式编写它,我不必找到每个 class object 并手动执行它们。 因此,我认为最好的方法是使用PropertyInfo
进行反射。
在问这个问题之前,我已经看过以下内容;
获取 object 的所有属性如何获取 class 的属性列表? https://www.codegrepper.com/code-examples/csharp/c%23+get+all+class+properties https://docs.microsoft.com/en-us/dotnet/api/system.type.getproperties ?view=net-5.0
看着这个,建议我采用正确的方法,但对于我的生活,我没有得到结果。
代码如下
void Main()
{
var propeties = typeof(MaterialsStructure).GetProperties(BindingFlags.Public | BindingFlags.Static);
}
public class MaterialsStructure
{
public ExistingProposedDescriptionStructure boundariesField;
public ExistingProposedDescriptionStructure ceilingsField;
}
public class ExistingProposedDescriptionStructure
{
public string Existing { get; set; }
public string Proposed { get; set; }
public bool NotApplicable { get; set; }
public bool DontKnow { get; set; }
}
问题是,当我检查属性时,它在数组中有 0 个项目,我原以为它有两个ExistingProposedDescriptionStructure
类型的属性。 如果有人能告诉我我在哪里出错了,我将不胜感激。
您的MaterialsStructure
class 没有属性,它有字段。 有关详细信息,请参见此处。 所以要么这样做:
var fields = typeof(MaterialsStructure).GetFields();
或更改您的 class:
public class MaterialsStructure
{
public ExistingProposedDescriptionStructure boundariesField { get; set;}
public ExistingProposedDescriptionStructure ceilingsField { get; set;}
}
现在这将起作用:
var propeties = typeof(MaterialsStructure).GetProperties();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.