public HasPermissionAttribute(Permissions permission) : base(((int)permission).ToString())
{
}
我想要动态检查权限。现在我只有一个枚举,里面有多个选项。这样,我就可以对控制器使用HasPermission(Permissions.SomePermission),而动态策略创建将执行其余的工作,检查某人是否拥有这样的权限。
但是,如果我可以有多个包含权限的枚举,那就太好了。然后,我可以将权限拆分到域中,例如,将来可以将应用程序拆分成域部分,这些域部分是封装在.dll中的模块,其中包含主应用程序不需要知道的自己的模型、控制器和权限-但无论如何都可以通过拥有它们的值来检查它们。
所以我有这样的属性,我可以给Enum,我想要标记为权限容器。
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)]
public class PermissionsEnumAttribute : Attribute
{
}
我可以将它提供给这样的枚举,并动态地查找标记为权限容器的枚举,但是我如何才能保留IntelliSense的能力来帮助我呢?如果HasPermissionAttribute接受任何具有PermissionEnumAttribute的枚举,并给我一些实际可以使用的提示,那将是最好的。
有没有可能实现这样的事情,或者我更愿意使用不同的方法?主要目标是能够使用HasPermission,因为它是检查某人是否可以访问特定控制器的一种非常方便的方式。枚举是我的主要选择,因为它们有自动递增的数值,可以作为代码优先方法中的主键,所以我可以在里面添加更多选项,IntelliSense将帮助我完成剩下的工作。
发布于 2019-09-13 19:05:08
使用枚举的数组实例如何?
string[] array = new string[5];
array[0] = "Value1";
array[1] = "Value1";
array[2] = "Value1";
array[3] = "Value1";
array[4] = "Value1";
Method(array, 2);
static bool Method(string[] array, int i) {
if (i >= array.Length) {
//Error
return false;
}
string a = array[i];
return true;
}
https://stackoverflow.com/questions/57922290
复制相似问题