3

我正在使用 C# 和 Visual Studio 2010 中的 .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 服务中创建这样的数组,而不是像我想要的那样从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 回答