如何解决c# 从类中获取 List<string>
我有一个带有常量字符串的类,
有没有办法将这些类的所有常量字符串都添加到列表中?
public class Permissions
{
public const string AccessHomePage = "AccessHomePage";
public const string AccessAdminPage = "AccessAdminPage";
...
}
一次添加管理员用户所有权限会更容易
获取类中所有字符串的列表直接...
List<string> allPermissions =
真的很不错...
解决方法
也许
给定
public class Permissions
{
public const string AccessHomePage = "AccessHomePage";
public const string AccessAdminPage = "AccessAdminPage";
}
示例
private static IEnumerable<string> GetConstants<T>()
=> typeof(T).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)
.Where(x => x.FieldType == typeof(string) && x.IsLiteral && !x.IsInitOnly)
.Select(x => x.GetValue(null) as string);
使用
foreach (var item in GetConstants<Permissions>())
Console.WriteLine(item);
输出
AccessHomePage
AccessAdminPage
加入胡椒和盐调味
说明
BindingFlags.Public
指定要在搜索中包含公共成员。
BindingFlags.Static
指定要在搜索中包含静态成员。
BindingFlags.FlattenHierarchy
指定层次结构中的公共和受保护静态成员 应该被退回。继承类中的私有静态成员是 没有回来。静态成员包括字段、方法、事件和 特性。不返回嵌套类型。
获取一个值,该值指示该字段是否只能在正文中设置 构造函数。
获取一个值,该值指示该值是否在编译时写入 并且无法更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。