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

时间:2011-05-11 22:11:07

标签: wpf xml serialization soap deserialization

我正在开发一个新应用程序的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响应以创建适当的对象?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我建议首先使用XSD为您的Soap消息定义XML模式。

一旦有了架构,就可以使用以下代码生成一个类:

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

现在你有了一个类,你可以使用XML Serialization使用通过XSD生成的类从对象转换为XML,从XML转换为对象。

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