3

Visual Studio 2010 で C# と .NET 2.0 フレームワークを使用しています。Web サービスから返される URL を抽出しようとしています。この URL は、キーと値を含む機能の配列で返されます。(これは私が学校で学んだハッシュテーブルと呼ばれるものに似ていると思います)。

私のインテリセンスは有用なものを何も拾わず、何が間違っているのかわかりません。

これがコードです。何が入りserverInfo.FeatureSet[]ますか?

public string wfl_reqURL(string username, string password)
{
    MyWorkflow.ServerInfo serverInfo = new MyWorkflow.ServerInfo();
    myURL = serverInfo.FeatureSet[];
}

これが WSDL での記述方法です。FeatureSet文字列キーと文字列値を持つ配列として返されます:

<ServerInfo>
  <FeatureSet>
    <Feature>
      <Key>FileUploadUrl</Key>
      <Value>http://localhost/transferindex.php</Value>
    </Feature>
  </FeatureSet>
</ServerInfo>

問題について十分な詳細を提供しましたか? 私が見つけた情報のほとんどは、私がやりたいように Web サービスから1 つを選択するのではなく、Web サービスでそのような配列を作成する方法に関するものです。

4

3 に答える 3

1

C# 3.5 を使用している場合は、linq のようなもの

myURL = serverInfo.FeatureSet.First(o=>o.Key == "FileUploadUrl").Value
于 2012-08-21T13:50:33.807 に答える
1

次のようなことを試してください:

object neededItem = null;
foreach (string item in serverInfo.FeatureSet.Keys)
{
    if (item == "FileUploadUrl")
    {
        neededItem = serverInfo.FeatureSet[item];
        break;
    }
}
if (neededItem != null)
{
    //Do something
}
于 2012-08-21T14:08:47.840 に答える
0

問題はデータ型にありました。コードをこれに変更すると、厄介な方法ではありますが、問題は解決しました。私はそれが型とそれがどのように定義されたかに関係があると思っていました...辞書または配列として、しかしそれは私が思っていたものとは少し異なっていました...

foreach( MyWorkFlow.Feature feature in serverInfo.FeatureSet) {
    if (feature.Key.ToString() == "FileUploadUrl") {
        string myURL = feature.Value;
        Console.WriteLine(myURL);
    }
于 2012-08-27T09:35:26.740 に答える