5

.NETWebアプリケーションでWebサービスをインスタンス化しようとしています。しかし、それがこの線に達するとすぐに:

registerService register = new registerService();

次に、次のエラーが発生します。

一時クラスを生成できません(result = 1)。エラーCS0030:タイプ'Test.Website.ProxyTest.registerType[]'を'Test.Website.ProxyTest.registerType'に変換できません

私はWebサービスを作成しませんでした。しかし、これはWebサービスのどこか(XSDなど)でエラーが発生したことを意味しますか?

これは、サードパーティの開発者がこのWebサービスを修正する必要があることを意味しますか?

4

1 に答える 1

9

これは既知の問題のようで、詳細はここにあります

原因: .NET Frameworkに含まれているWSDL.EXEの既知の問題により、複合型の配列に、要素が1つしかない複合型の配列でもある要素が含まれている場合、プロキシクラスが正しく生成されないことがあります。

現時点で利用できる解決策はありませんが、次の3つの回避策があります。

WSDL.EXEを使用してプロキシクラスを手動で生成してから、データ型が2次元配列として不適切に作成されたプロキシクラスを変更し(例:'CustomType [] []')、それを1次元配列に修正します(例: 'CustomType []')。2番目のオプションの要素が定義に含まれるように、目的のWSDLのデータ型を変更します。これは、''などの要素を追加することで実行できます。境界属性が要素ではなく複合型の一部になるように、目的のWSDLの複合型を変更します(つまり、「minOccurs」属性と「maxOccurs」属性を複合型に移動し、要素から削除します)。

同様のstackoverflowの質問

于 2013-03-21T06:25:26.653 に答える