###前提・実現したいこと
環境:VisualStudio2012 .net4.5 C# Windows7環境
実現したいこと: 他社から提供されたWSDL、XSDを取込み、Webサービスを呼び出す
WSDLとそれに関係するRequest.xsd、Response.xsdがセット。サービス参照にてWSDLを取り込むと
Service、Request、Responseの3クラスが自動生成される。
自動生成された3クラスを使用してWebサービス通信を実現する
例)
ServiceClient srv = new ServiceClient();
Response res = srv.Start(new Request());
###発生している問題・エラーメッセージ
自動生成されたRequestクラスの内部変数にて単項目の2次元配列の変数が作成
例) string [][] hoge;
この2次元配列の影響で実行時エラーが発生
[Exceptionメッセージ]
メッセージ Request の本文をシリアル化しているときにエラーが発生しました: '一時クラスを生成できません (result=1)。
error CS0030: 型 'string[]' を型 'string' に変換できません。
調べていると下記サイトにたどり着く
xsdによるクラスの自動生成。自動生成で対応できないクラスを調整する。(2次元配列のメンバー)
上記サイトの通りなら、大元のXMLの構造がよろしくないため、自動生成されたクラスで正常に処理できないことになる。
本来なら元のWSDL、XSDを修正、再提出していただくのがいいのだが、最悪こちら側で何とかしなければいけない可能性もあるため、上記2次元配列を含んだクラスを何とかうまく.net上で実行できる方法を教えてください。
###補足情報(言語/FW/ツール等のバージョンなど)
・今後の運用、バージョンアップも予想されるため、自動生成されたクラスをこちら側で修正を掛けるのは避けたい。
・同じWSDLをJava(Eclipse)でも同じように取込み。上記例外は発生しない
・2次元配列の無いI/Fは問題無く取込み、実行できる
・上記2次元配列を1次元に修正すると実行時エラーは無くなる
以上、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。