C# 反射自定义类型返回null
以下代码(在StackOverflow上找到)起作用: 但是,如果我使用自己的类,它将不起作用:C# 反射自定义类型返回null,c#,reflection,properties,null,C#,Reflection,Properties,Null,以下代码(在StackOverflow上找到)起作用: 但是,如果我使用自己的类,它将不起作用: public class Subject { public string Name; public int Age; public Point Position; public string Stringtest; public int IntTest; public Subject() { } } Type type = ob
public class Subject
{
public string Name;
public int Age;
public Point Position;
public string Stringtest;
public int IntTest;
public Subject()
{
}
}
Type type = ob.GetType();
PropertyInfo pr = type.GetProperty("Name"); // null
string value = pr.GetValue(ob, null).ToString();
我尝试了所有Bindingflags,但变量“pr”保持为空。有人有主意吗?你有这个:
public class Subject
{
public string Name;
...
}
在类型定义中,
Name
是字段而不是属性,您必须将类型更改为:
public class Subject
{
public string Name { get; set; }
...
}
另外,如果您想将名称
标记为字段(坏主意),您可以使用:
FieldInfo pr = type.GetField("Name");
Name
是字段而不是属性,请将其更改为属性public string Name{get;set;}
或使用type.GetField
。“ob”的含义是什么?它是来自主题的对象吗?@Alessandro这是正确答案(很可能),因此应作为答案给出。
FieldInfo pr = type.GetField("Name");