Public Enum ERight
ECanInvite = 0
ECanCreate = 1
ECanDelete = 2
etc...
End Enum
Public Enum EUserType
EAdministrator = 0
EPartner_level1 = 1
EPartner_level2 = 2
ENormalUser = 3
...etc
End Enum
这下面子,就rights.add
一个错误,有时会抛出这个错误:An item with the same key has already been added.
我的代码抛出,我认为应该是不可能
这怎么可能?
Private Shared rights As Dictionary(Of ws_garuda.EUserType, List(Of ERight)) = Nothing
Private Sub initRoles()
rights = New Dictionary(Of EUserType, List(Of ERight))
rights.Clear()
' Set all rights to false for all roles
For Each usertype As EUserType In DirectCast([Enum].GetValues(GetType(EUserType)), EUserType())
rights.Add(usertype, New List(Of ERight))
Next
End sub
您是否在多线程应用程序(例如ASP.NET)中?您不显示在多个线程之间共享的“权限”字段/属性?你所有的枚举值是独一无二的吗? – Joe 2011-12-23 11:53:26
@Joe是, 权利被定义为: 公共类CRights 私人共享权利词典(ws_garuda.EUserType,列表(中ERight))=无 所有枚举值是唯一 – Muleskinner 2011-12-23 11:57:25
请更改标题的东西,说得通。显然这不是不可能的,因为它正在发生。 – 2011-12-23 11:57:49