使用枚举项名称作为属性参数

Dev*_*per 7 .net c# wcf-ria-services

我只是想不要为每个属性使用"Managers"并为此使用一些枚举.

但似乎不可能或我错了?

所以我试着替换

[RequiresRole("Managers")]
Run Code Online (Sandbox Code Playgroud)

[RequiresRole(HardCodedRoles.Managers.ToString())]

...

public enum HardCodedRoles
{ 
            Administrators,
            Managers
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*nes 11

如果一个类而不是一个枚举,使该类静态以避免一个新的人:它呢?

public static class HardCodedRoles
{
    public const string Managers = "Managers";
    public const string Administrators = "Administrators";
}

[RequiresRole(HardCodedRoles.Managers)] 
Run Code Online (Sandbox Code Playgroud)

  • 但这并不限制某人使用`[RequiresRole("fred")]`。这样就足够了吗? (2认同)

小智 6

You could also use the nameof keyword, i.e.:

[RequiresRole(nameof(HardCodedRoles.Managers))]
Run Code Online (Sandbox Code Playgroud)