C# 获取公共财产信息的正确方法是什么?

C# 获取公共财产信息的正确方法是什么?,c#,reflection,C#,Reflection,以下是最方便的方式吗 type.GetProperties().Where(pinfo=> pinfo.CanRead).ToArray(); 我只想忽略以下几点 private object prop {get;set;} protected object prop {get;set;} 但不是 public object prop {get;set;} public object prop {get;private set;} 有一个重载将BindingFlags作为参数: 快速

以下是最方便的方式吗

type.GetProperties().Where(pinfo=> pinfo.CanRead).ToArray();
我只想忽略以下几点

private object prop {get;set;}
protected object prop {get;set;}
但不是

public object prop {get;set;}
public object prop {get;private set;}

有一个重载将
BindingFlags
作为参数:

快速测试表明,它可以准确返回您所需的内容:

public class TestClass
{
    private object prop1 { get; set; }
    protected object prop2 { get; set; }

    public object prop3 { get; set; }
    public object prop4 { get; private set; }
}

返回2个元素:
prop3
prop4
属性。

有一个重载,它将
BindingFlags
作为参数:

var properties = type.GetProperties();
快速测试表明,它可以准确返回您所需的内容:

public class TestClass
{
    private object prop1 { get; set; }
    protected object prop2 { get; set; }

    public object prop3 { get; set; }
    public object prop4 { get; private set; }
}

返回2个元素:
prop3
prop4
属性。

这不是简单的
GetProperties
?默认情况下,您将仅获取公共属性

var properties = type.GetProperties();

注意:这也包括静态属性和只写属性,但我相信没有人使用set-only访问器设计属性

这不是简单的
GetProperties
?默认情况下,您将仅获取公共属性

var properties = type.GetProperties();
注意:这也包括静态属性和只写属性,但我相信没有人使用set-only访问器设计属性