C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C#で作るSOAPサーバーでのchoice要素について


(過去ログ 139 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■81750 / inTopicNo.1)  C#で作るSOAPサーバーでのchoice要素について
  
□投稿者/ uemotosiro (1回)-(2016/11/07(Mon) 23:37:14)

分類:[C#] 

はじめまして、お世話になります。
Yahoo知恵袋にも質問させて頂いてるのですが、せっぱつまっているのでこちらにも質問させて下さい。

C#でSOAPサーバーを作ろうとしています。
他社が設計したxsdファイルがあり、それを取り込んで作っているのですが、choice要素がうまく処理できず困っています。ちょっと言葉足らずかもしれませんがご了承願えればと存じます。

概要としては、
parent(complex)のメンバーとして、
typeA要素から派生したAというchoice要素があり
そのメンバーに、typeBとtypeCというcomplexタイプがあるとします。

c#にxsdを取り込むと自動で下記のようなclassが生成されます。
(不要と思われる属性は割愛して表記しております)

[System.Xml.Serialization.XmlIncludeAttribute(typeof(typeB))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(typeC))]
[System.SerializableAttribute()]
public abstract partial class A : typeA
{
}


サーバーメソッドの処理の中では、

typeB B = new typeB();
parent.A = B;

などとして処理しておりますが、構文エラーなく正常に処理されているようです。

ところが、サーバーメソッドを抜けると下記エラーが発生します。

----
型 'System.ServiceModel.CommunicationException' のハンドルされていない例外が mscorlib.dll で発生しました

追加情報:http://localhostほにゃらら/ に対する HTTP 応答の受信中にエラーが発生しました。この原因としては、サービス エンドポイント バインドが HTTP プロトコルを使用していないことが考えられます。また別の原因として、HTTP 要求コンテキストがサーバーによって中止された可能性もあります (サーバーがシャットダウンした場合など)。詳細についてはサーバー ログを参照してください。
----

クライアントはサーバーが自動生成してくれるwsdlを取り込んで作っていますが、
wsdlを確認したところ、上記のchoice要素だったAはchoice要素ではなく、
通常のcomplex型(typeA型)として定義されていました。


質問をまとめますと、
・すでに定義されたxsdファイルがありchoice要素が含まれている
・それに基づいてC#でSoapサーバーを作りたい
・サーバークライアントでやり取りできるようにchoice要素を扱うにはどうしたらよいか

という感じです。

言葉足らずでわかりづらいかも知れませんが、
みなさまのお知恵をお貸しください。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -