c# - .Net XmlSerializer 输出数据类型

标签 c# .net xml xml-serialization xmlserializer

我有一个方法,它接受一个对象并将其转换为一个 XML 字符串。这很好用,但我希望输出 XML 包含对象属性的数据类型(字符串、整数、 double 等)。我到处搜索,但如果不编写自定义序列化程序,我似乎找不到解决方案。

如有任何帮助,我们将不胜感激。

private static string ToXML<t>(t obj, bool indent = false)
{
    System.Xml.Serialization.XmlSerializerNamespaces ns = new System.Xml.Serialization.XmlSerializerNamespaces();
    XmlSerializer xs = new XmlSerializer(typeof(t));
    StringBuilder sbuilder = new StringBuilder();
    var xmlws = new System.Xml.XmlWriterSettings() {OmitXmlDeclaration = true, Indent = indent};

    ns.Add(string.Empty, string.Empty);

    using (var writer = System.Xml.XmlWriter.Create(sbuilder, xmlws))
    {
        xs.Serialize(writer, obj, ns);
    }

    string result = sbuilder.ToString();

    ns = null;
    xs = null;
    sbuilder = null;
    xmlws = null;

    return result;
}

最佳答案

.NET 中的 XmlSerializer 旨在与自身一起使用具体对象类型重新序列化,以确定它应如何处理来自 XML 的数据。

标准的 XmlSerializer 不会为您序列化该信息。

您应该查看 WCF 的 DataContractSerializer,据我所知,它更加冗长并且假设更少。它还非常灵活。

关于c# - .Net XmlSerializer 输出数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474929/

相关文章:

c# - 如何使面板以编程方式滚动以显示其自动调整大小图片框

c++ - 将 Mat 从 C++ dll 返回到 VB.Net

html - 我可以将 LINQ 结果嵌入到 CDATA 中吗?

python - 我可以让 Beautiful Soup 保持属性排序和行缩进吗

c# - XPathSelectElement 与后代

c# - CSV 正则表达式拆分缺失的列

c# - .NET Core 2.0 Crypto 示例不工作 - 错误 Cng v4.3 使用高于引用算法 v4.2 的算法 v4.3

c# - 将面板置于前面或更改可见性后,Application.Run 出现 ArgumentException

.net - 如何在 vb.net 中通过 HTTP post 发布文件

c# - 如何在具有多个客户端的 TCP 服务器端保留消息发送顺序