我正在寻找有关正确数据结构的建议。我确信这应该是显而易见的,但我无法找到正确的答案。我需要将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]
我考虑过Tuple和字典,但是我有点不确定是否可以使用基于字符串的多个索引来访问它们。任何人都可以帮助宣布正确的结构来实现这一目标吗? 感谢
答案 0 :(得分:0)
带复合键的词典是一个选项。 Tuple
是创建已经具有所有必要的比较/散列方法的密钥的廉价方法:
Dictionary<Tuple<string,string>, Instance> instances = new ....;
instances.Add(Tuple.Create("DEV", "EU"), euDevInstance);....
var find = instances[Tuple.Create("PROD", "AM");
注意:如果您决定使用必要字段创建自定义类,并且比较/散列方法可以使您的代码更具可读性。
答案 1 :(得分: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];
}
}
}
<强> USAGE:强>
var api = new ConcreteAXLAPIService<MyService>();
...
var apiMethod = api["ServiceName"]["MethodName"];