【发布时间】:2019-08-28 15:23:22
【问题描述】:
我需要将一个类序列化为 xml。如果在运行时满足某个条件,我想将 XML 属性添加到元素并为其分配一个值。有时,“错误”属性会出现,有时不会。
序列化我的对象的代码:
public class XmlToolsRepo : IXmlTools
{
public string SerializeToXML<T>(object obj)
{
string results = null;
Encoding enc = Encoding.UTF8;
using (MemoryStream ms = new MemoryStream())
{
using (XmlTextWriter xw = new XmlTextWriter(ms, enc))
{
xw.Formatting = Formatting.None;
XmlSerializerNamespaces emptyNS = new XmlSerializerNamespaces(new[] { new XmlQualifiedName("", "") });
XmlSerializer xSerializer = new XmlSerializer(typeof(T));
xSerializer.Serialize(xw, obj, emptyNS);
}
results = enc.GetString(ms.ToArray());
}
return results;
}
}
具有在运行时可能具有新属性的属性的类:
[DataContract]
public class H204
{
[DataMember]
[XmlAttribute]
public string Code { get; set; }
[DataMember]
public string DW { get; set; }
}
当满足条件时,我需要 XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<H204 Code="A">
<DW Error="test" />
</H204>
【问题讨论】:
-
您是否尝试过搜索动态 xml 属性? stackoverflow.com/questions/36946189/c-sharp-dynamic-attributes