2016-11-05 59 views
0

在Service Fabric應用程序中使用IReliableDictionary各種IReliableDictionaries列表

試圖組織一個班級中的所有字典,有沒有辦法讓IReliableDicionary列表使用不同的密鑰?

IReliableDictionary<Guid, User> x = await GetDictionaryAsync<Guid, User>("userDict"); 
IReliableDictionary<string, Guid> y = await GetDictionaryAsync<string, Guid>("emailToUser"); 

var dicts = new List<IReliableDictionary<object, object>> { x, y }; 

只有這個是不行的,因爲IReliableDictionary重點必須實現IComparableIEquatable

在C#中泛型沒有太多的經驗。可以想想如何在java中使用? extends表示法。這在C#中可能嗎?

+0

我注意到你的鍵是'string'和'guid'。將guid轉換爲字符串一樣簡單嗎? –

+0

你打算在下一步做什麼?我的意思是,如果這種方式有效,你仍然需要知道鍵和類型的值,以便稍後能夠使用該字典。 – Evk

+0

@MaorVeitsman然而,可能希望不必重寫大量的服務。此外,這將失去清晰度,以及驗證Guids – MetalMichael

回答

0

我不確定你要去哪裏。你不會讓編譯器爲該列表中的字典強制執行類型安全。你將不得不編寫反射代碼。您也可能遇到問題,試圖自己維護對字典的引用。

StateManager對象已經爲您管理您的字典 - 這就是它的用途。你需要跟蹤自己唯一需要的是詞典的名字。