将XmlSerializer代码从java转换为C#

本文关键字:转换 java XmlSerializer 代码 | 更新日期: 2023-09-27 18:29:47

我有一个Java Android应用程序,可以正确地序列化文档,但我需要使用ASP.NET/C#.构建一个等效的应用程序

Java中的XMLSerializer和C#中的XMLSerializer似乎是完全不同的动物。Java版本似乎有很多C#版本中找不到的方法。

下面是我的代码示例:

    XmlSerializer serializer = Xml.newSerializer();
    StringWriter writer = new StringWriter();
    serializer.setOutput(writer); *
    serializer.startDocument("UTF-8", true); *
    serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); *
    serializer.startTag(null, "root"); *
    serializer.flush(); *
    writer.write(value);
    serializer.endTag(null, String.valueOf(type).toLowerCase()); *
    serializer.startTag(null, "image");
    serializer.text(Base64.encodeToString(image, Base64.DEFAULT)); *
    serializer.endTag(null, "image");
    serializer.endDocument(); *

这里列出的方法(用星号标记)在C#中都不可用。我怎么可能模仿它呢?我在网上搜索过,找不到任何关于这个主题的像样的文件。有人知道上面显示的方法的C#等价物是什么吗?

将XmlSerializer代码从java转换为C#

  • System.Xml.XmlWriter.Flush<->org.xmlpull.v1.XmlSerializer.flush
  • System.Xml.XmlWriter.Create(Stream)<->org.xmlpull.v1.XmlSerializer.setOutput(Writer)
  • System.Xml.XmlWriter.WriteStartDocument<->org.xmlpull.v1.XmlSerializer.startDocument
  • System.Xml.XmlWriter.WriteEndDocument<->org.xmlpull.v1.XmlSerializer.endDocument
  • System.Xml.XmlWriter.WriteStartElement<->org.xmlpull.v1.XmlSerializer.startTag
  • System.Xml.XmlWriter.WriteEndElement<->org.xmlpull.v1.XmlSerializer.endTag
  • System.Xml.XmlWriter.WriteString<->org.xmlpull.v1.XmlSerializer.text
  • System.Xml.XmlWriter.WriteBase64<->您的图像
  • System.Xml.XmlWriter.WriteProcessingInstruction<->org.xmlpull.v1.XmlSerializer.setFeature

msdn:上的参考文献

  1. XmlWriter,仅转发xml流生成器
  2. XmlWriterSettings
  3. XmlWriter编码
  4. XmlWriter中的命名空间处理