擬似コード例:特定の条件下で、ASMX Webサービスが空のXML文書を返すことはできますか?
string data = GetDataFromDB();
if(data != null)
return XMLDocument;
else
break;
私はこれをしたい理由は、応答にデータがない場合はスループットが低下することです。
擬似コード例:特定の条件下で、ASMX Webサービスが空のXML文書を返すことはできますか?
string data = GetDataFromDB();
if(data != null)
return XMLDocument;
else
break;
私はこれをしたい理由は、応答にデータがない場合はスループットが低下することです。
まあ、nullを返すか、そうでない場合は、新しいオブジェクトを返します。
あなたの実際のコードは、このようなものになるだろう:
if(data != null)
return new XMLDocument();
else break;
はSOAPで、null
ははい、それは可能である非0長
を持つXMLフラグメントにシリアライズされていることを考えてみましょう。
サービスがリクエストされたとおりに完了し、返されるデータがない場合、空の応答を返すウェブサービス内にWebサービスがあります。私はしかし、serivceがデータのある "200 - OK"ステータスとデータのない "204 - No content"ステータスを返すようにしました。あなたのコードがHttpStatusCode.OK
かHttpStatusCode.NoContent
なく200や204これは後でコーダーが一目で意思を確認することができますおよび204は、コンテンツのないことを意味しないことを知っている必要はないがありますので、
は、HttpStatusCode列挙型を使用します。
できます。しかし、それはあなたがすべきではありません。あなたのサービスの消費者がリターン値を期待している場合、何も受け取らないという奇妙なバグが発生します。それは明らかにprinciple of least surpriseに反する。
一方、Webサービスを使用するコードを作成している場合は、自由に行ってください。
編集:あなたは、帯域幅使用量を減らしたい場合は
、あなたはSOAPのXMLシリアライザを使用して、おそらく代わりに、SOAPバイナリシリアライザを使用して(または/およびあなたがあなたのサービスのために、コンテンツの圧縮を可能にすることができる)ではない検討することができます。 SOAPよりもあまり冗長ではなく(より少ない帯域幅を消費する)クロスプラットフォームのWebサービスが必要な場合は、普通の古いxml/jsonを使用することもできます。この場合、WCF Web APIは非常に優れたプラットフォームです。
「長さが0でない」? –