不带集合类的控制数组序列化
本文关键字:数组 序列化 控制 集合类 | 更新日期: 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本身没有太多约束并且仅用于序列化/反序列化的情况很好)并为您的类编写自己的序列化支持,该怎么办?