获取非继承属性

发布于 2024-11-07 00:49:00 字数 375 浏览 1 评论 0原文

我试图读取给定对象的所有属性,仅读取在对象类型上声明的属性,不包括继承的属性。 IE:

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

I'm trying to read all of the properties of a given object, reading in only those that are declared on the object's type, excluding those that are inherited. IE:

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

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

And so I want to only get B back. Reading the docs, I assumed below was what I needed, but that actually returned nothing at all.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心欲静而疯不止 2024-11-14 00:49:00

只需要几个其他 BindingFlags

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

Just need a couple other BindingFlags

var names = InstanceOfChild.GetType().GetProperties(
   BindingFlags.DeclaredOnly |
   BindingFlags.Public |  
   BindingFlags.Instance).Select(pi => pi.Name).ToList();
恍梦境° 2024-11-14 00:49:00

试试这个:

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

我将 BindingFlags.InstanceBindingFlags.Public 添加到搜索参数中,根据 MSDN 文档 分别:

指定实例成员
包含在搜索中。

指定公共成员应
包含在搜索中。

Try this:

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

I added the BindingFlags.Instance and BindingFlags.Public to the search parameters, which according to the MSDN documentation respectively:

Specifies that instance members are to
be included in the search.

and

Specifies that public members are to
be included in the search.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文