【问题标题】:Getting the public properties of a class in .NET core在 .NET Core 中获取类的公共属性
【发布时间】:2016-11-13 22:00:05
【问题描述】:

我注意到 .NET 核心不允许 myObj.GetType().GetProperties() 因为不存在 GetProperties 方法。有没有其他方法可以通过反射来获取类的属性?

【问题讨论】:

  • myObj.GetType().GetTypeInfo().GetProperties()
  • Nkosi No GetTypeInfo 方法似乎存在于 .NET 核心中
  • 确实如此,它只是一个额外的包。这就是 .NET Core 的理念——这就是该项目被命名为“Core”的原因。反射不是核心的一部分,因为它意味着可怕的依赖关系,这使得 .NET Native 的用处大大降低。

标签: c# .net-core


【解决方案1】:

看来myObj.GetType().GetProperties() 是有效的。我只需要通过using System.Reflection 引入 System.Reflection。

【讨论】:

    【解决方案2】:

    只是总结一下其他人,只是在页面顶部添加using System.Reflection是不够的。您必须按照问题 cmets 中的说明添加 System.Reflection.TypeExtensions NuGet 包。

    PM> 安装包 System.Reflection.TypeExtensions -Version 4.3.0

    【讨论】:

    • 1/ 这是对作为答案的评论的评论,2/ 不,你没有。 3./ 这出人意料地迅速获得了支持。
    • 是的。我在 .NET Standard 1.6 项目中遇到了同样的问题,只有上面的组合为我解决了这个问题。不幸的是,在 .NET Core 中,命名空间现在分布在多个程序集中。
    • 1/ 是的,你这样做了 2/ 似乎如果你在回答自己的问题(而不是完整的答案),那么你对投票的挑剔感到不安......我都赞成你......一起这是一个完整的答案
    • @MoslemBenDhaou 问题指的是“.Net Core”而不是.Net Standard
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2021-01-20
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多