Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反射自定义类型返回null_C#_Reflection_Properties_Null - Fatal编程技术网

C# 反射自定义类型返回null

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

以下代码(在StackOverflow上找到)起作用:

但是,如果我使用自己的类,它将不起作用:

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");