背景情報: VS10 を使用して C# .NET 2.0 内で作業する。
応答としていくつかのものを返す Web サービスを呼び出しています。そのうちの 1 つはStates です。StatesはStateの配列です。各 State にはいくつかのプロパティがあり、一部は null 可能です。3 番目のプロパティであるTypeを分離することに関心があります。Type はObjectType型で、いくつかのものを指定できますが、そのうちの 1 つが「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!
}
}
今質問:
「Article」の代わりに「」引用符が機能せず、Article 自体が機能しないなどを使用する必要があります。IF がここで行われる方法では、「Operator == can'tタイプ 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>
誰か助けてくれませんか?