背景信息:使用 VS10 在 C# .NET 2.0 中工作。
我正在调用一个 web 服务,它会返回一些东西作为响应,其中之一是States。States又是一个State数组。每个州都有几个属性,有些可以为空。我有兴趣隔离第三个属性Type。Type 是ObjectType 类型,它可以是多种事物,其中之一是“Article”。这实际上有点奇怪,因为我不确定ObjectType是什么类型(定制)。在 Web 服务界面,它被定义为“Choice of”......“”,“Article”,“video”等......但是当我调用它并检查 xml 响应的日志时,我看到了什么我想这样写:
<Type>Article</Type>
这让我对 State.Type 中实际包含的内容感到困惑:
-<States>
-<State>
<Id>1</Id>
<Name>Personal</Name>
<Type>Article</Type>
</State>
....
</States>
所以我想为每个单独的州(在州内)运行数组并检查它是否是“文章”。
string stateID = null;
myWebServer.State oneoftheStates = null;
for (int i = 0; i < objInfo.States.Length; i++)
{
oneoftheStates = objInfo.States[i];
if (oneoftheStates.Type == "Article") //This is the problem!!!
{
statusID = oneoftheStates.Id;
break; // found it!
}
}
现在的问题:
我应该使用什么来代替“文章”,因为“”引号不起作用,并且文章本身不起作用等等。使用 IF 在这里完成的方式,我收到错误“操作员 == 不能应用于 ObjectType 和 'char' 类型的操作数。还会出现“字符文字中的字符过多”错误。
额外信息(编辑)
<complexType name="State">
<all>
<element name="Id" type="xsd:string"/>
<element name="Name" type="xsd:string" nillable="true"/>
<element name="Type" type="tns:ObjectType" nillable="true"/>
<element name="Produce" type="xsd:boolean" nillable="true"/><!-- If true for layouts, output will be send if set in featurelist -->
<element name="Color" type="tns:Color" nillable="true"/>
<element name="DefaultRouteTo" type="xsd:string" nillable="true"/><!-- default route to for this status, returned by server, no need to send as client -->
</all>
</complexType>
有人可以帮我吗?