小编Old*_*Bob的帖子

如何使用XMLSerializer添加没有前缀的默认命名空间

我正在尝试生成一个XML文档,其中包含没有前缀的默认命名空间XmlSerializer,例如

<?xml version="1.0" encoding="utf-8" ?>
<MyRecord ID="9266" xmlns="http://www.website.com/MyRecord">
    <List>
        <SpecificItem>
Run Code Online (Sandbox Code Playgroud)

使用以下代码......

string xmlizedString = null;
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xs = new XmlSerializer(typeof(ExportMyRecord));
XmlSerializerNamespaces xmlnsEmpty = new XmlSerializerNamespaces();
xmlnsEmpty.Add(string.Empty, string.Empty);
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xs.Serialize(xmlTextWriter, myRecord, xmlnsEmpty);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
xmlizedString = this.UTF8ByteArrayToString(memoryStream.ToArray());
Run Code Online (Sandbox Code Playgroud)

和班级结构......

[Serializable]
[XmlRoot("MyRecord")]
public class ExportMyRecord
{
    [XmlAttribute("ID")]
    public int ID { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在,我尝试了各种选择......

XmlSerializer xs = new XmlSerializer
                     (typeof(ExportMyRecord),"http://www.website.com/MyRecord");
Run Code Online (Sandbox Code Playgroud)

要么 ...

[XmlRoot(Namespace = "http://www.website.com/MyRecord", ElementName="MyRecord")]
Run Code Online (Sandbox Code Playgroud)

给我 ...

<?xml …
Run Code Online (Sandbox Code Playgroud)

c# namespaces xmlserializer

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

namespaces ×1

xmlserializer ×1