c# - 获取非继承属性

标签 c# reflection

我正在尝试读取给定对象的所有属性,只读取在对象类型上声明的属性,不包括继承的属性。即:

class Parent {
   public string A { get; set; }
}

class Child : Parent {
   public string B { get; set; }
}

所以我只想找回 B。阅读文档,我假设下面是我需要的,但实际上什么也没有返回。

var names = InstanceOfChild.GetType().GetProperties(BindingFlags.DeclaredOnly).Select(pi => pi.Name).ToList();

最佳答案

只需要几个其他的 BindingFlags

var names = InstanceOfChild.GetType().GetProperties(
   BindingFlags.DeclaredOnly |
   BindingFlags.Public |  
   BindingFlags.Instance).Select(pi => pi.Name).ToList();

关于c# - 获取非继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981417/

相关文章:

c# - 如何在 Windows Phone 的 RichTextBlock 中实现滚动

c# - 在 C# 中抑制 "Member is never assigned to"警告

c# - 在 ASP.NET Core 2.x 中更改密码

c# - 反射:递归地搜索字符串值的对象,然后报告路径

c# - 如何将 IHttpContextAccessor 注入(inject) Autofac TenantIdentificationStrategy

java - 枚举反射

c++ - 如何安全地向下转换 USTRUCT

c# - 如何在 .NET 中动态调用类的方法?

reflection - 反射(reflect)类型参数

reflection - 为什么需要在gRPC服务器上注册反射服务