寻求有关处理通用 SOAP 响应的建议

发布于 2024-11-06 09:33:26 字数 899 浏览 1 评论 0原文

我正在开发一个新应用程序的 GUI (WPF),该应用程序将发送各种 SOAP 请求并获取使用通用格式形成的 SOAP 响应。下面是一个示例响应:

  <SOAP-ENV:Body>
    <TheResponse>
        <MetaData>
          <DataSchema>
            <ColumnSchema type="decimal" ref="c0" name="min" />
            <ColumnSchema type="decimal" ref="c1" name="max" />
          </DataSchema>
        </MetaData>
        <Data>
          <Item>
            <c0>0</c0>
            <c1>1</c1>
          </Item>
        </Data>
    </TheResponse>
  </SOAP-ENV:Body>

如您所见,SOAP 响应将定义元数据,然后定义实际数据。我需要根据请求/响应创建不同的对象。在此示例中,该对象将具有两个属性:Min 和 Max,其值分别为 0 和 1。

如果我为我知道需要的对象定义了类,例如:

class MyClass
{
   public decimal Min {get; set;}
   public decimal Max {get; set;}
}

我将如何反序列化 SOAP 响应来创建适当的对象?

感谢您的帮助。

I am working on the GUI (WPF) of a new app that will be sending various SOAP requests and getting back SOAP responses that will be formed using a generic format. Here is a sample response:

  <SOAP-ENV:Body>
    <TheResponse>
        <MetaData>
          <DataSchema>
            <ColumnSchema type="decimal" ref="c0" name="min" />
            <ColumnSchema type="decimal" ref="c1" name="max" />
          </DataSchema>
        </MetaData>
        <Data>
          <Item>
            <c0>0</c0>
            <c1>1</c1>
          </Item>
        </Data>
    </TheResponse>
  </SOAP-ENV:Body>

So as you can see, the SOAP response will define the meta data and then the actual data. I need to create different objects depending on the request/response. In this example, the object would have two properties, Min and Max, whose values are 0 and 1 respectively.

If I have the classes defined for the objects I know I would need, for example:

class MyClass
{
   public decimal Min {get; set;}
   public decimal Max {get; set;}
}

how would I go about deserializing the SOAP response to create the appropriate object?

Thanks for the help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉生梦死 2024-11-13 09:33:26

我建议首先使用 XSD

拥有架构后,您可以使用以下命令生成类:

从 Visual Studio 2010 命令提示符中,运行
Xsd.exe schema.xsd /classes /语言:[CS | VB]。

现在您已经有了一个类,您可以使用 XML 序列化 从使用通过 XSD 生成的类从对象到 XML 以及从 XML 到对象。

这些步骤消除了手动编写代码来检查/解析 XML 的需要。

I'd recommend starting with defining a XML schema for you Soap message using XSD.

Once you have a schema you can generate a class using the following:

From the Visual Studio 2010 Command Prompt, run
Xsd.exe schema.xsd /classes /language:[CS | VB].

Now that you have a class you can use XML Serialization to convert from an object to XML and from XML to an object using the class generated via XSD.

These steps remove the need to manually write code to examine/parse the XML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文