2011-01-13 71 views
1

我在我的課已經這個元素序列化XML C#.net2.0

[XmlArray("photos")]   
public List<zPhoto> EntityPhotos; 

當我序列化我的課,我得到這樣的:

<photos> 
    <zPhoto id="73102" type="a" /> 
    <zPhoto id="73102" type="b"/> 
    <zPhoto id="73105" type="a" /> 
    <zPhoto id="73105" type="b" /> 
</photos> 

爲了簡化XPath查詢我要添加一個新的指令,會給我一個結果像

<photos count="2" > 
    <zPhoto id="73102" type="a" /> 
    <zPhoto id="73102" type="b"/> 
    <zPhoto id="73105" type="a" /> 
    <zPhoto id="73105" type="b" /> 
</photos> 

我想添加trival屬性名稱和設置值。可能嗎?

回答

0

一種方法是引入自定義泛型集合類,以自己想要的方式進行序列化。

-2

您可以用替換字符串類型你ZPhotos類型。

[XmlRoot("EntityPhotos")] 
    public class EntityPhotos 
    { 
     private List<String> _photos; 

     public EntityPhotos() 
     { 
      _photos = new List<string> 
      { 
       "One.jpg", 
       "Two.png", 
       "Three.gif" 
      }; 
     } 

     [XmlElement("Photos")] 
     public String[] Photos 
     { 
      get 
      { 
       return _photos.ToArray(); 
      } 

      set {;} 

     } 

     [XmlAttribute("Count")] 
     public Int32 Count 
     { 
      get 
      { 
       if (Photos != null) 
        return Photos.Length; 
       else 
        return 0; 
      } 

      set{;} 
     } 
    }