これが素朴な質問である場合はお詫び申し上げます。私は "ユニバーサル" C# Web サービス クライアントを作成しました。このクライアントは、任意の Web サービスの WSDL を調べて、Web サービスに要求を送信し、応答を表示できる Windows フォーム UI を生成することによって機能します。
次のように UI を生成します。まず、Web サービスの WSDL からコンパイル済みアセンブリを (ServiceDescriptionImporter と CodeCompiler を使用して) 動的に生成し、次に、このプロセスによって生成された SoapHttpClientProtocol クライアントを調べます。
Webサービスのメソッドごとに、パラメータの型を反映して入力パラメータフィールドを表示するUIを生成します。基本的に、それぞれのタイプを認識し、それをどのように表示するのが最適かを決定する必要があります (つまり、文字列パラメーターはテキスト ボックスとして、ブール値はチェックボックスとして、などのように表示されます)。
認識に苦労している型は、ArrayOfKeyValuestringstringKeyValueOfstringstring などの型です。単純に型の名前を解析することもできます (if (名前は "ArrayOf" で始まります) の行に沿って) が、これらの型が何らかの方法で配列であることを認識するためのより良い方法があるはずです。
誰かがこれを行う方法を提案できれば、私は最も感謝しています! ありがとう、マーティン