Атрибут XmlRoot c # - PullRequest
       11

Атрибут XmlRoot c #

1 голос
/ 09 февраля 2011

Мне нужно сериализовать строку, которая является действительным 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, или он есть только у класса данных, а у двух других есть другой атрибут вместо xmlroot

1 Ответ

4 голосов
/ 09 февраля 2011

XmlRoot будет делать что-либо, только если объект окажется корневым элементом сериализованного файла. не влияет на то, как объекты именуются в массивах (насколько я знаю).

Чтобы задать имена массивов и объектов внутри, используйте соответствующие атрибуты:

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

Мы не можем знать, верен ли ваш код, если вы не публикуете XML, который он должен перевести или прочитать.

...