如何获取属性名称及其值

本文关键字:属性 何获取 获取 | 更新日期: 2023-09-27 18:32:23

可能的重复项:
C# 如何通过反射获取字符串属性的值?

public class myClass
{
    public int a { get; set; }
    public int b { get; set; }
    public int c { get; set; }
}

public void myMethod(myClass data)
{
    Dictionary<string, string> myDict = new Dictionary<string, string>();
    Type t = data.GetType();
    foreach (PropertyInfo pi in t.GetProperties())
    {
        myDict[pi.Name] = //...value appropiate sended data.
    }
}

简单的课程,3 properties。我发送此类的对象。我怎样才能循环获取所有property names及其值,例如到一个dictionary

如何获取属性名称及其值

foreach (PropertyInfo pi in t.GetProperties())
    {
        myDict[pi.Name] = pi.GetValue(data,null)?.ToString();
    }

这应该可以满足您的需求:

MyClass myClass = new MyClass();
Type myClassType = myClass.GetType();
PropertyInfo[] properties = myClassType.GetProperties();
foreach (PropertyInfo property in properties)
{
    Console.WriteLine("Name: " + property.Name + ", Value: " + property.GetValue(myClass, null));
}

输出:

名称: a, 值: 0

名称: b, 值: 0

名称: c, 值: 0