我正在使用Visual Studio 2010中的C#和.NET 2.0框架。 我正在尝试提取由Web服务返回的URL。 此URL在包含键和值的要素数组中返回。 (我认为这与我在学校学到的相似,称为哈希表)。
我的intellisense没有找到任何有用的东西,我无法弄清楚我做错了什么。
这是代码。 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服务中的我想做。
答案 0 :(得分:1)
如果你正在使用c#3.5那么就像linq中的那样
myURL = serverInfo.FeatureSet.First(o=>o.Key == "FileUploadUrl").Value
答案 1 :(得分:1)
尝试这样的事情:
object neededItem = null;
foreach (string item in serverInfo.FeatureSet.Keys)
{
if (item == "FileUploadUrl")
{
neededItem = serverInfo.FeatureSet[item];
break;
}
}
if (neededItem != null)
{
//Do something
}
答案 2 :(得分:0)
问题出在数据类型中。将代码更改为此解决了问题,尽管是以混乱的方式。我认为这与类型及其定义方式有关...无论是字典还是数组,但它与我想的有点不同......
foreach( MyWorkFlow.Feature feature in serverInfo.FeatureSet) {
if (feature.Key.ToString() == "FileUploadUrl") {
string myURL = feature.Value;
Console.WriteLine(myURL);
}