在模型中设置 XML 属性

Setting an XML attribute in the model

我需要在 XML 中设置一个属性。我需要以下内容:

<finAccount version="1.00">

这是我目前的模型

[XmlAttribute("version")]
[XmlType("finPOWERConnect")]
public class ApplicationData
{
    public List<Account> Accounts;
}

[XmlType("finAccount")]
public class Account
{
   //Account stuff
}

以下函数使用上述模型将我的对象序列化为 xml。

 public Boolean SerialiseObjectToXmlString(Object obj, ref string xml)
    {
        System.IO.MemoryStream ms = null;
        bool Ok = true;
        XmlSerializer xmlSerializer = null;

        xml = "";

        //Serialise
        try
        {
            xmlSerializer = new XmlSerializer(obj.GetType());
            ms = new MemoryStream();
            xmlSerializer.Serialize(ms, obj);
            xml = System.Text.Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length);
            ms.Close();
        }

        catch(Exception ex)
        {
            Ok = false;
            xml = ex.Message;
        }

        finally
        {
            if (ms != null) ms.Dispose();
        }

        return Ok;
    }

我看过几个在上述方法中设置属性的示例,但是我在整个应用程序中都使用了此方法。有没有办法在模型中设置 xml 属性 (version="1.00)?

试试这个。 Class 应为 XmlRoot,数组应为 XmlElement。 XmlElement 避免在代码中添加两层相同的标记。尝试不使用 XmlElement,您会发现不同之处。

[XmlRoot("finPOWERConnect")]
public class ApplicationData
{
    [XmlElement("finAccount")]
    public List<Account> Accounts {get; set; }
}

[XmlRoot("finAccount")]
public class Account
{
    [XmlAttribute("version")]
    public string Version { get; set; } 
    //Account stuff
}
​