2016-11-05 5 views
0

サービスファブリックアプリケーションでIReliableDictionaryを使用しています。さまざまなIRELiableDictionariesのリスト

クラス内のすべての辞書を整理しようとすると、別のキーを使用するIReliableDicionaryのリストを持つ方法がありますか? IReliableDictionaryの鍵はIComparableIEquatableを実装する必要があるため

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 }; 

これだけでは、動作しません。

C#のGenericsに関する多くの経験はありませんでした。 ? extends表記でjavaでこれを行う方法を考えることができます。これはC#で可能ですか?

+0

あなたのキーは 'string'と' guid'です。 guidを文字列に変換するのが簡単なので、stringを一様に使用する方が簡単でしょうか? –

+0

そして、そのリストで次に何をするつもりですか?私はそれが何とかうまくいけば、後でその辞書を使うことができるように、キーと値の型を知る必要があるということです。 – Evk

+0

@MaorVeitsmanしかし、潜在的に、大量のサービスを書き換える必要がないことを望んでいました。さらに、これは明快さを失うだけでなく、Guids – MetalMichael

答えて

0

私はあなたがこれと一緒に行くつもりはわかりません。コンパイラにそのリストの辞書の型安全性を強制するつもりはありません。リフレクションコードを書く必要があります。また、自分自身で辞書への参照を維持しようとすると問題に遭遇する可能性があります。

StateManagerオブジェクトは、すでにあなたのための辞書を管理しています。それがそのためのものです。あなた自身を追跡するために必要なのは、辞書の名前だけです。

関連する問題