我尝试使用Visual Studio使用.NET Web应用程序来使用此SOAP。
我的问题是,如果我的wsdl只描述了两种方法; ' processMessage
'和' processOCIMessage
'。他们期望的消息是一个符合30个xsd模式之一的字符串,这是使用API的最佳方式吗?
例如,如果我想获得一些用户信息。我需要编写一个符合这个模式的字符串:
<xs:complexType name="UserGetRequest19">
<xs:annotation>
<xs:documentation>
Request to get the user information. The response is either
UserGetResponse19 or ErrorResponse.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
我知道如何传递answer to this question中描述的简单参数。但是我如何使用Schemas做到这一点?
Visual Studio中是否有工具可以将这些工具转换为用户友好的C#类/模型?或者我是否需要手动输入XML字符串,转义特殊字符并将其作为参数传递给&#39; processMessage
&#39;?
答案 0 :(得分:1)
首先,使用内置工具从WSDL开始添加Visual Studio Web引用。这应该创建您的客户端代理和数据传输类;你最终会得到一个带有processMessageReturn
属性的类作为字符串,另一个带有processOCIMessageReturn
属性的类,也是一个字符串。
接下来,使用/c
开关通过xsd.exe运行您感兴趣的XSD,以生成您的课程。
从那以后,您将需要编写代码来实例化并填充您在第二步中创建的类。使用XmlSerializer将“top”类序列化为字符串,然后将该字符串分配给第一步中提到的属性。您不必担心将XML编码为文本节点,因为框架内置的XML序列化程序将为您提供相应的帮助。