You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过反射获取C#集合类型属性的成员信息?

反射获取集合属性内部成员的解决方案

你遇到的核心问题是:直接获取myClass2属性的类型时拿到的是List<MyClass2>,而你需要的是集合中元素MyClass2的属性信息。以下是具体修改步骤和代码示例:

关键思路

  1. 先获取MyClass中myClass2属性的类型信息
  2. 识别该类型是否为泛型集合,提取其泛型参数(即MyClass2类型)
  3. 针对提取出的元素类型,获取它的属性成员

完整代码示例

using System;
using System.Collections.Generic;
using System.Reflection;

internal class MyClass
{
    string name { get; set; }
    List<MyClass2> myClass2 { get; set; }
}

internal class MyClass2
{
    string field1 { get; set; }
    string field2 { get; set; }
    int field3 { get; set; }
    long field4 { get; set; }
}

class Program
{
    static void Main()
    {
        // 获取MyClass的类型信息
        Type myClassType = typeof(MyClass);
        
        // 获取myClass2属性的PropertyInfo(注意指定绑定标志,因为属性是非公共的)
        PropertyInfo myClass2Property = myClassType.GetProperty("myClass2", BindingFlags.NonPublic | BindingFlags.Instance);
        
        if (myClass2Property != null)
        {
            // 获取属性的实际类型:List<MyClass2>
            Type propertyType = myClass2Property.PropertyType;
            
            // 判断是否为泛型集合且只有一个泛型参数
            if (propertyType.IsGenericType && propertyType.GetGenericArguments().Length == 1)
            {
                // 提取泛型参数,即MyClass2的类型
                Type elementType = propertyType.GetGenericArguments()[0];
                
                // 获取MyClass2的所有非公共实例属性
                PropertyInfo[] myClass2Properties = elementType.GetProperties(BindingFlags.NonPublic | BindingFlags.Instance);
                
                // 遍历输出属性信息
                foreach (var prop in myClass2Properties)
                {
                    Console.WriteLine($"属性名:{prop.Name},类型:{prop.PropertyType.Name},成员类型:{prop.MemberType}");
                }
            }
        }
    }
}

注意事项

  • 由于你的类和属性都是internal或默认私有访问级别,反射时必须指定BindingFlags.NonPublic | BindingFlags.Instance,否则无法定位到目标成员
  • 该方法适用于所有泛型集合类型(如ICollection<T>、IList<T>等),核心逻辑是提取泛型参数对应的元素类型

内容的提问来源于stack exchange,提问作者Alex Vergara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:25:11