c# - 获取带有字符串值的类属性列表

标签 c# reflection

我有一个类以下消息。我需要从这里使用字符串获取运行时的属性列表。例如:

var classObject = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("edifactProdat.PRODAT");
var unhTypeNames = classObject.GetType().GetProperty("UNH").GetType().GetProperties();

但是此代码不会返回我的 UNH 对象属性,而是返回所有属性。
任何帮助将不胜感激。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace edifactProdat
{
    public class PRODAT
    {
        public UNH UNH { get; set; }
        public BGM BGM { get; set; }
        public DTM DTM { get; set; }
        public NAD NAD { get; set; }
    }

    public class UNH
    {
        public string MessageReferenceNumber { get; set; }
        public string MessageTypeIdentifier { get; set; }
        public string MessageTypeVersionNumber { get; set; }
        public string MessageTypeReleaseNumber { get; set; }
        public string ControllingAgency { get; set; }
        public string AssociationAssignedCode { get; set; }
    }

    public class BGM
    {
        public string DocumentMessageNameCoded { get; set; }
        public string CodeListQualifier { get; set; }
        public string CodeListResponsibleAgencyCoded { get; set; }
        public string DocumentMessageNumber { get; set; }
        public string MessageFunctionCoded { get; set; }
    }

    public class DTM
    {
        public string DateTimePeriodQualifier { get; set; }
        public string DateTimePeriod { get; set; }
        public string DateTimePeriodFormatQualifier { get; set; }
    }

    public class NAD
    {
        public string PartyQualifier { get; set; }
        public string PartyIdIdentification { get; set; }
        public string CodeListQualifier { get; set; }
        public string CodeListResponsibleAgencyCoded { get; set; }
    }
}

最佳答案

获取UMH类的(public)属性名称:

  String[] propNames = typeof(edifactProdat.PRODAT.UMH)
    .GetProperties()
    .Select(property => property.Name)
    .ToArray();

请注意,您不需要创建感兴趣对象的实例(代码中的classObject)。

关于c# - 获取带有字符串值的类属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32333869/

相关文章:

c# - NumericUpDown 中出现奇怪的 ArgumentOutOfRangeException

c# - 使用 .NET 4.5 和 IIS 的 MVC 中的应用程序死锁

java - 如何使用反射创建具有私有(private)字段和构造函数的类对象?

c# - 如何在 C# 中动态加载 VB 6.0 dll?

java - 使用 this.getClass().getDeclaredField 方法时出现 NullPointerException

java - 在 Java 12+ 中更改静态最终字段

c# - Entity Framework Core : Is it safe to delete Migration. Designer.cs 如果我们永远不会恢复迁移?

c# - 我检查了 INotifyPropertyChanged 但如何利用它?

c# - ASP.Net Identity 在每个请求上运行多个查询

linq - 反射 + Linq + DbSet