代码之家  ›  专栏  ›  技术社区  ›  Jeff Wain

以字符串形式检索类名层次结构

c#
  •  0
  • Jeff Wain  · 技术社区  · 15 年前

    我们的系统复杂性已经上升到需要使数据库中与客户机绑定的权限名称更加具体的程度。在客户机中,权限是从静态类引用的,因为许多客户机功能依赖于每个用户拥有的权限和角色的多样性。我引用过 this post 作为一个例子,我正在寻找一个更具体的用例。以这个引用为例,其中permitionalpha是一个常量字符串:

    return HasPermission(PermissionNames.PermissionAlpha);
    

    这很好,除了现在事情变得越来越复杂,类的结构是这样的:

    public static class PermissionNames
    {
        public static class PermissionAlpha
        {
            public const string SubPermission = "PermissionAlpha.SubPermission";
        }
    }
    

    我试图找到一种简单的方法来参考这个新设置中的PermitionalPHA,它的作用类似于上面的第一个声明。这样做的唯一方法是像下面的示例一样提取类名的值吗?我试图把所有的名字放在一个地方,可以在应用程序的任何地方引用。

    public static class PermissionAlpha
    {
        public static string Name { get { return typeof(PermissionAlpha).Name; } }
    }
    

    **编辑**-添加了缺少的权限名称。

    2 回复  |  直到 15 年前
        1
  •  0
  •   adam0101    15 年前

    也许这对于您的项目大小来说太大了,但是我们的所有业务对象都被划分为部分类。一个用于手动更改,一个用于生成。在代码生成过程中,我们将权限键从“单一事实源”写入部分类的生成端。我们使用一组类作为我们要生成的事实和代码域的源,但是您也可以使用数据库作为源,并使用t4、codesmith或其他类来生成。

        2
  •  0
  •   ΩmegaMan    15 年前

    为什么不在相关类上创建可反射属性?这样就可以添加所需的所有额外信息。我在我题为:

    C# Using Extended Attribute Information on Objects

    高温高压