2016-11-05 57 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对象已经为您管理您的字典 - 这就是它的用途。你需要跟踪自己唯一需要的是词典的名字。