C# 如何在运行时向属性添加Xml属性
我需要将一个类序列化为xml。如果在运行时满足某个条件,我想向元素添加一个XML属性并为其赋值。有时会出现“Error”属性,有时不会 序列化对象的我的代码:C# 如何在运行时向属性添加Xml属性,c#,xml,C#,Xml,我需要将一个类序列化为xml。如果在运行时满足某个条件,我想向元素添加一个XML属性并为其赋值。有时会出现“Error”属性,有时不会 序列化对象的我的代码: public class XmlToolsRepo : IXmlTools { public string SerializeToXML<T>(object obj) { string results = null; Encoding enc = Encoding.UTF8;
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;
}
}
当满足条件时,我需要XML如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<H204 Code="A">
<DW Error="test" />
</H204>
尝试以下操作:
public class H204
{
[XmlAttribute(AttributeName = "Code")]
public string Code { get; set; }
[XmlElement(ElementName = "DW")]
public DW dw{ get; set; }
}
public class DW
{
[XmlAttribute(AttributeName = "Error")]
public string text { get; set; }
}
您是否尝试过搜索动态xml属性?这太完美了,谢谢!
public class H204
{
[XmlAttribute(AttributeName = "Code")]
public string Code { get; set; }
[XmlElement(ElementName = "DW")]
public DW dw{ get; set; }
}
public class DW
{
[XmlAttribute(AttributeName = "Error")]
public string text { get; set; }
}