0

サービスがあります。パラメータが慣習的でない関数を作成します。

パラメータは List(Of KeyValuePair(Of MyObjectType, Integer)) です

しかし、それは私の関数がKeyValuePairOfMyObjectTypeInt32の配列を必要とするようにしました。

それと一緒に行く最善の方法は何ですか?

4

1 に答える 1

1

残念ながら、ジェネリックは SOAP フレンドリーではありません。

考慮すべきいくつかの制限があります。このMSDN 投稿のインターフェイスとジェネリックに関するセクションを参照してください。

または、このスレッドへの応答を参照してください: リンク

XML シリアライザーは、ある種のジェネリック型をシリアライズできることがわかりました。neotapir が正しく指摘しているように、ジェネリック型は XML シリアライザーによって完全にはサポートされていませんが、質問で述べたように、ItemResponseOfType[TheType] の型を作成するため、ジェネリック型をシリアル化できます。

XML シリアライザーは、型をジェネリック型にシリアル化しないだけです。

エレガントなソリューションに関する限り、私は実際には持っていません。他の誰かが介入したい場合、私は自分自身を知りたいと思います.

個人的には、まれに(あなたが説明したのと同様に)サーバー側でジェネリックを使用し、クライアントはWSDLで定義されたクラス(つまり、GenericObjectTypeOfPersonTypeInt32)を使用しました

明確にするために(および以下のコメントの内容を再フォーマットするために)、クライアント側で次を呼び出すことができます。

KeyValuePairOfMyObjectTypeInt32.Key
KeyValuePairOfMyObjectTypeInt32.Value
于 2013-02-06T21:47:49.730 に答える