0

我正在使用 svcutil 工具为第 3 方 wdsl 生成一组代理。在关联的 XSD 文件中定义的类型之一使用 xs:any 元素:

<xs:any namespace="##any" processContents="lax"/>

生成的代码使用 XmlElement 类型的属性来表示:

[System.Xml.Serialization.XmlAnyElementAttribute(Order=0)]
public System.Xml.XmlElement Any
{
    get
    {
        return this.anyField;
    }
    set
    {
        this.anyField = value;
    }
}

在这个领域中真正需要的是工具生成的强类型对象之一。

我的问题是:是否有一种简单/推荐的方法可以从对象实例到 XmlElement 实例?

我能想到的就是将对象图序列化为 XmlDocument,然后使用它。但这似乎很尴尬。

4

1 回答 1

0

生成的代码对于架构是正确的。xs:对 xml blob 的任何 mas。如果您希望生成的代码更具体,则需要将架构从 xs:any 更改为特定类型。

但是,如果架构不受您的控制,这是使用架构的唯一正确方法。您不能假设消息包含任何特定类型。

于 2011-03-19T06:44:17.770 回答