C# 如何在运行时向属性添加Xml属性

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;

我需要将一个类序列化为xml。如果在运行时满足某个条件,我想向元素添加一个XML属性并为其赋值。有时会出现“Error”属性,有时不会

序列化对象的我的代码:

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; }
    }