2011-02-09 14 views
1

オブジェクトに有効なXMLである文字列をシリアル化する必要があります。事は、そのオブジェクトが他のオブジェクトの2つの配列であり、かつ以下の注釈が正しいかどうかは知りません。XmlRoot属性c#

[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は属性、またはデータのみを持っているかをクラスはそれを持ち、他の2つはxmlrootの代わりに別の属性を持っています

+0

質問を一度クリアすると、 – PawanS

+0

完了。今はっきりしていることを願っています。 – Sorcerer86pt

答えて

4

XmlRootは、オブジェクトがシリアル化されたファイルのルート要素として終わる場合にのみ実行されます。 は、配列内のオブジェクトの名前付け方法(私が知る限り)には影響しません。

は、配列の名前を設定すると、オブジェクトは内部のそれぞれの属性を使用します。あなたはそれが翻訳したりから読むべきXMLを投稿していない場合私達はあなたのコードが正しいかどうかを知ることができない

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

+0

ありがとうございます。それを行うだろう – Sorcerer86pt

+0

XmlRootの代わりにMensagemとServicoUrgenteクラスで使うべき属性は何ですか? XmlElement? – Sorcerer86pt

+0

'XmlRoot'は完全にオプションです。ドキュメント要素(ルート要素)の名前を指定する必要があります。' Serialize(object、path) 'を呼び出すと、' XmlRoot'をクラス'オブジェクト'通常のプロパティの場合は、 'XmlElement'(これはオプションで、省略された場合はプロパティ名を使用します)と' XmlArray'と 'XmlArrayItem'を使用する列挙可能なプロパティを使用することがよくあります。 –