使用 FieldInfo 类获取数据成员值

本文关键字:数据成员 获取 FieldInfo 使用 | 更新日期: 2023-09-27 18:23:38

class Algo
{
    public const long AlgorithmDescription = 1611048;
    public const long AlgorithmFamilyCodeSequence = 6684719;
    public const long AlgorithmName = 6684726;
    public const long AlgorithmNameCodeSequence = 6684720;
    public const long AlgorithmParameters = 6684722;
    public const long AlgorithmType = 1611047;
    public const long AlgorithmVersion = 6684721;
}
class Class1<T>
{
    SortedList<uint, string> ds;
    public SortedList<uint, string> TraverseTag()
    {
        ds = new SortedList<uint, string>();
        uint i = 0;
        foreach (FieldInfo prop in typeof(Algo).GetFields(BindingFlags.Public |
                                                          BindingFlags.Static | 
                                                          BindingFlags.Instance))
        {
            ds.Add(i, prop.Name);
            i++;
        }
        return ds;
     }
}
public class Program
{
    public static void Main()
    {
        var objClass = new Class1();
        SortedList<uint, string> s = objClass.TraverseTag();
    }
}

Algo类中,我为此创建了一个 dll,并使用对我的 Program.cs 类的引用并调用 TraverseTag() 方法,此方法返回我 uint 和 FieldInfo 它返回我{[0,AlgorithmDescription]}但我也想要分配给Algo类中的数据成员的值。

例如>

{[0,算法描述,1611048]}

使用 FieldInfo 类获取数据成员值

您可以访问 FieldInfo 实例的 GetValue 方法。这应该为您提供该字段所属类的特定实例的该字段的值。