不带集合类的控制数组序列化

本文关键字:数组 序列化 控制 集合类 | 更新日期: 2023-09-27 18:20:35

我有这个代码:

public static void Main()
        {
            var test = new TestXML[] {new TestXML() {TestAttribute = "blah"}};
            var settings = new XmlWriterSettings();
            settings.OmitXmlDeclaration = true;
            var ns = new XmlSerializerNamespaces();
            ns.Add("abc", "a/b/c/d/e/f/g");

            var serializer = new XmlSerializer(typeof(TestXML[]));
            var sw = new StringWriter();
            var xw = XmlWriter.Create(Console.Out, settings);
            serializer.Serialize(xw,test,ns);
            Console.ReadLine();
        }

继续。。。

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "a/b/c/d/e/f/g",IncludeInSchema = true)]
    public class TestXML
    {
        public string TestAttribute { get; set; }   
    }

代码输出:

 <ArrayOfTestXML
 xmlns:abc="a/b/c/d/e/f/g"><TestXML><abc:TestAttribute>blah</abc:TestAttribute></TestXML></ArrayOfTestXML>

我们有一个第三方依赖项,它限制了我们向序列化过程中添加集合类的能力。是否可以控制序列化以使<TestXML>获得前缀abc?

不带集合类的控制数组序列化

如果不使用标准的XmlSerializer(这对于XML本身没有太多约束并且仅用于序列化/反序列化的情况很好)并为您的类编写自己的序列化支持,该怎么办?