【发布时间】:2015-03-13 11:59:48
【问题描述】:
我想在使用 XmlSerializer 时获取以下 XML:
<?xml version="1.0"?>
<GetProfileRequest xmlns="urn:veloconnect:profile-1.1">
</GetProfileRequest>
但是当我序列化时,我得到以下 XML:
<?xml version="1.0"?>
<GetProfileRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</GetProfileRequest>
序列化代码:
GetProfileRequest request = new GetProfileRequest();
XmlSerializer serialize = new XmlSerializer(typeof(GetProfileRequest));
serialize.Serialize(Response.OutputStream, request);
类:
[System.Xml.Serialization.XmlIncludeAttribute(typeof(TransactionRequestType))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "urn:veloconnect:profile-1.1")]
public partial class GetProfileRequest : RequestType
{
}
[System.Xml.Serialization.XmlIncludeAttribute(typeof(TransactionRequestType))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:veloconnect:transaction-1.0")]
public partial class RequestType
{
}
是否有可以在“GetProfileRequest”类中定义的属性或有助于将 xmlns="urn:veloconnect:profile-1.1" 命名空间引入 XML 的属性?
我还尝试通过以下代码手动添加 XmlSerializeNamespace,但这只是删除了根元素中的所有命名空间声明,而不是创建所需的声明。
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "urn:veloconnect:profile-1.1");
// and then call serialize.Serialize with ns
【问题讨论】: