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