0
我有一个Role
对象将有几个标志枚举属性,每个相关的对象。用户可以属于多个角色。我想获得角色的集合并将其展平为单个表示并使用它来限制UI功能。我该如何展开收藏?如何使用标志枚举属性展平对象集合?
下面是从我LINQPad测试一些示例代码:
ICollection<Role> roles = new List<Role>();
roles.Add(new Role {
Name = "Administrator",
Object1Defaults = DefaultPermissions.Add | DefaultPermissions.Edit | DefaultPermissions.Remove,
Object2Defaults = DefaultPermissions.Add | DefaultPermissions.Edit | DefaultPermissions.Remove
});
roles.Add(new Role {
Name = "Manager",
Object1Defaults = DefaultPermissions.Add | DefaultPermissions.Edit,
Object2Defaults = DefaultPermissions.Add | DefaultPermissions.Edit
});
public class Role {
public string Name { get; set; }
public DefaultPermissions Object1Defaults { get; set; }
public DefaultPermissions Object2Defaults { get; set; }
}
[Flags]
public enum DefaultPermissions {
Add = 1 << 0,
Edit = 1 << 1,
Remove = 1 << 2
}
当然,我也开放,为实现权限更好的方法的建议。我的计划是在Role
的数据库中为每个其他对象创建一个枚举,就像使用Object1Defaults
和Object2Defaults
一样,除了有更好的名称和更多的名称。