当前位置:  开发笔记 > 编程语言 > 正文

序列化对象时省略XML处理指令

如何解决《序列化对象时省略XML处理指令》经验,为你挑选了2个好方法。

我正在C#VS2003/.Net 1.1应用程序中序列化一个对象.但是,我需要在没有处理指令的情况下进行序列化.XmlSerializer类推出类似这样的东西:

 

    Data
    More Data

有没有办法得到类似下面的内容,而不处理生成的文本删除标签?


    Data
    More Data

对于那些好奇的人,我的代码看起来像这样......

XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
StringBuilder builder = new StringBuilder();

using ( TextWriter stringWriter = new StringWriter(builder) )
{
    serializer.Serialize(stringWriter, comments);
    return builder.ToString();
}

小智.. 9

我做了一个小小的修正

XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using ( XmlWriter stringWriter = XmlWriter.Create(builder, settings) )
{   
   serializer.Serialize(stringWriter, comments);  
  return builder.ToString();
}


Marc Gravell.. 7

在2.0中,您将使用XmLWriterSettings.OmitXmlDeclaration,并序列化为XmlWriter - 但我认为这不存在于1.1中; 所以并不完全有用 - 但只是再考虑一次"考虑升级"的事情......是的,我发现它并不总是可行的.



1> 小智..:

我做了一个小小的修正

XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using ( XmlWriter stringWriter = XmlWriter.Create(builder, settings) )
{   
   serializer.Serialize(stringWriter, comments);  
  return builder.ToString();
}



2> Marc Gravell..:

在2.0中,您将使用XmLWriterSettings.OmitXmlDeclaration,并序列化为XmlWriter - 但我认为这不存在于1.1中; 所以并不完全有用 - 但只是再考虑一次"考虑升级"的事情......是的,我发现它并不总是可行的.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有