XmlRoot属性c#

时间:2011-02-09 11:34:57

标签: c# compact-framework xml-serialization

我需要将一个有效xml的字符串序列化为一个对象。问题是该对象是其他对象的2个数组,我不知道以下注释是否正确:

[XmlRoot("Data")]
public class Data
{
    [XmlArray("ServicoUrgente")]
    public ServicoUrgente[] servicosUrgentes;

    [XmlArray("Mensagem")]
    public Mensagem[] mensagens;
}


[XmlRoot("Mensagem")]
public class Mensagem
{
    [XmlElement("ToUserID")]
    public int ToUserID;

    [XmlElement("Message")]
    public int Message;

    [XmlElement("TimeStamp")]
    public DateTime TimeStamp;

}


[XmlRoot("ServicoUrgente")]
public class ServicoUrgente
{
    [XmlElement("ServicoID")]
    public int ServicoID;
    [XmlElement("ToUserID")]
    public int ToUserID;

    [XmlElement("FromUserID")]
    public int FromUserID;
    [XmlElement("FromUserName")]
    public string FromUserName;

    [XmlElement("DataInicioPrevista")]
    public DateTime DataInicioPrevista;
    [XmlElement("DataFimPrevista")]
    public DateTime DataFimPrevista;

    [XmlElement("IDPoi")]
    public int IDPoi;
    [XmlElement("NomePoi")]
    public string Nome;
    [XmlElement("DescricaoPoi")]
    public string Descricao;
    [XmlElement("NContratoPoi")]
    public string NContrato;
    [XmlElement("MoradaPoi")]
    public string Morada;
    [XmlElement("LatitudePoi")]
    public double Latitude;
    [XmlElement("LongitudePoi")]
    public double Longitude;

}

问题是:我们为每个类提供了一个xmlRoot属性,或者只有Data类有它,而另外两个有另一个属性而不是xmlroot

1 个答案:

答案 0 :(得分:4)

如果对象最终作为序列化文件的根元素,

XmlRoot将只执行任何操作。 影响对象在数组中的命名方式(据我所知)。

要设置数组的名称和内部对象,请使用相应的属性:

[XmlArray("NameOfElementWrappingTheItems")]
[XmlArrayItem("NameOfItemsInsideTheArray")]
public object[] Stuff ...

如果您不发布应翻译或读取的XML,我们无法知道您的代码是否正确。