如果这是一个幼稚的问题,我们深表歉意。我编写了一个“通用”C# Web 服务客户端:它通过检查任何 Web 服务的 WSDL 并生成允许您向 Web 服务提交请求并显示响应的 Windows 窗体 UI 来工作。
它生成 UI 的过程如下:首先,它从 Web 服务的 WSDL 动态生成一个已编译的程序集(使用 ServiceDescriptionImporter 和 CodeCompiler),然后它内省由该过程生成的 SoapHttpClientProtocol 客户端。
对于每个 Web 服务方法,通过反映参数类型生成显示输入参数字段的 UI。本质上,我必须识别每种类型并决定如何最好地显示它(因此字符串参数显示为文本框,布尔值显示为复选框,等等)。
我难以识别的类型是 ArrayOfKeyValuestringstringKeyValueOfstringstring 等类型。我可以简单地解析类型的名称(沿着 if(名称以“ArrayOf”开头)的行),但我确信必须有更好的方法来以某种方式将这些类型识别为数组。
如果有人可以建议如何做到这一点,我将不胜感激!谢谢,马丁