嵌套静态类的属性

问题描述 投票:0回答:1

我有这个嵌套的静态类

public static class UserRoles
{
    public static class Administrator
    {
        public static string Code => "ADMIN";
        public static string Title => "Administrator";
    }

    public static class ClientUser
    {
        public static string Code => "CU";
        public static string Title => "Client User";
    }

    public static class Driver
    {
        public static string Code => "DR";
        public static string Title => "Driver";
    }
}

我正在尝试迭代UserRoles的属性,但失败了。我尝试使用System.Reflection,我认为这是解决该问题的唯一合适方法。

我已经尝试过将GetFields与绑定和GetProperties一起使用,但是很遗憾,它无法正常工作。

var fields = myType.GetFields(BindingFlags.Static | BindingFlags.NonPublic);

我已经检查了其他问题,但是我没有发现任何针对此非常基本和常见情况的问题。请让我知道这是否是任何重复项。

任何帮助将不胜感激。

c# system.reflection
1个回答
1
投票

您可以为此使用GetNestedTypes方法>>

GetNestedTypes

它返回var userRoles = typeof(UserRoles).GetNestedTypes().SelectMany(t => t.GetProperties()); 中每个嵌套类的属性的枚举。

但是如果要存储一些信息,例如键和值集,则UserRoles比静态嵌套类更好。看看下面的例子

Dictionary<TKey,TValue>
© www.soinside.com 2019 - 2024. All rights reserved.