0

使用する適切なデータ構造に関するアドバイスを探しています。これは明らかなはずですが、正しい答えを見つけることができません。次のようにアクセスできるように、SOAP サービス インスタンスをデータ構造に格納する必要があります。

AXLAPIService myInstance = instances["DEV"]["EU"]

// table values
["DEV"]["EU"][instance]
["DEV"]["AM"][instance]
["PROD"]["EU"][instance]
["PROD"]["AM"][instance]

// Data to store
[String][String][Object]

タプルとディクショナリについて考えましたが、文字列に基づく複数のインデックスを使用してそれらにアクセスできるかどうかは少しわかりません。これを達成するための正しい構造を宣言するのを手伝ってくれる人はいますか? ありがとう

4

2 に答える 2

0

概念的には、次のようになります。

class ConcreteAXLAPIService<T>
{
  private Dictionary<string, T> servicePool;

  public T this[string id]
  {
    get
    {
        return servicePool[id];
    }
  }
}


class MyService<T>
{
    private Dictionary<string, T> methodPool;

    public T this[string id]
    {
      get
      {
          return methodPool[id];
      }
    }
}

利用方法:

var api = new ConcreteAXLAPIService<MyService>();
...
var apiMethod = api["ServiceName"]["MethodName"];
于 2013-10-26T05:41:59.333 に答える
0

複合キーを持つ辞書はオプションです。Tuple必要なすべての比較/ハッシュ方法を既に持っているようなキーを作成するための安価な方法です:

 Dictionary<Tuple<string,string>, Instance> instances = new ....;

 instances.Add(Tuple.Create("DEV", "EU"), euDevInstance);....


 var find = instances[Tuple.Create("PROD", "AM");

注: このルートに進むことにした場合は、必要なフィールドと比較/ハッシュ メソッドを使用してカスタム クラスを作成すると、コードが読みやすくなる場合があります。

于 2013-10-26T05:38:49.523 に答える