为了符合客户端架构,我一直在尝试生成一个 WCF 客户端代理,该代理能够序列化为具有如下所示根节点的结构:
<quote:request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:quote="https://example.com/services/schema/1.2/car_quote">
经过一番阅读后,我很幸运地通过使用 XmlNameSpaceDeclarations 和 XmlSerializerNamespaces 更新了代理以包含所需的“quote”命名空间
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class request
{
[XmlNamespaceDeclarations()]
public XmlSerializerNamespaces xmlsn
{
get
{
XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();
xsn.Add("quote", "https://example.com/services/schema/1.2/car_quote");
return xsn;
}
set
{
//Just provide an empty setter.
}
}
...
它提供:
<request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:quote="https://example.com/services/schema/1.2/car_quote">
但是我对如何生成 quote:request 元素感到困惑。
环境:ASP.NET 3.5
如果没有一些 WSDL 来生成代理,我无法真正重现您的情况,但是如果我添加一个序列化位,那么序列化位对我有用XmlRoot
属性。
using System.Xml.Serialization;
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[XmlRoot(Namespace="https://example.com/services/schema/1.2/car_quote")]
public partial class request
{
[XmlNamespaceDeclarations()]
public XmlSerializerNamespaces xmlsn
{
get
{
XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();
xsn.Add("quote", "https://example.com/services/schema/1.2/car_quote");
return xsn;
}
set { }
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)