2010-08-16 54 views
0

我有以下類麻煩的自定義類的列表,以序列化user.config

[Serializable()] 
public class ColumnList 
{ 
    public ColumnList() 
    { 
     ListOfColumns = new List<Column>(); 
    } 
    public ColumnList(string name) 
     : this() 
    { 
     Name = name; 
    } 

    List<Column> ListOfColumns { get; set;} 
    public string Name { get; set; } 
    //Extra methods cut out. 
} 
[Serializable()] 
public partial class Column 
{ 
    public Column() 
    { 
     VarName = ""; 
     HeaderName = ""; 
     ItemType = ""; 
     SelectText = ""; 
     Position = 0; 
     Visable = true; 
    } 
    public Column(string varName, string headerName, string itemType, string selectText, int position) 
    { 
     VarName = varName; 
     HeaderName = headerName; 
     ItemType = itemType; 
     SelectText = selectText; 
     Position = position; 
     Visable = true; 
    } 

    public string VarName { get; set; } 
    public string HeaderName { get; set; } 
    public string ItemType { get; set; } 
    public string SelectText { get; set; } 
    public int Position { get; set; } 
    public bool Visable { get; set; } 
    //extra methods cut out. 
} 

隨着我Settings.cs以下文件

[global::System.Configuration.UserScopedSettingAttribute()] 
public List<ColumnList> ColumnListLists 
{ 
    get { return ((List<ColumnList>)(this["ColumnListLists"])); } 
    set { this["ColumnListLists"] = value; } 
} 

所以基本上我有一個該類的列表,該類包含一個名稱和另一個類的列表。該類有幾個字符串,一個布爾值和一個int。

但是,在我的程序運行後,我的user.config中有這個。

<value> 
    <ArrayOfColumnList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <ColumnList> 
      <Name>Preproduction</Name> 
     </ColumnList> 
     <ColumnList> 
      <Name>Production</Name> 
     </ColumnList> 
     <ColumnList> 
      <Name>Contract Approval</Name> 
     </ColumnList> 
    </ArrayOfColumnList> 
</value> 

它具有ColumnList的名稱,但它不包含Column元素。任何建議,我做錯了什麼?

回答

2

因爲......

List<Column> ListOfColumns { get; set;} 

...是私有的,XML序列化器會忽略它。

+0

謝謝,我是個白癡。我會盡快給出接受的答案。 – 2010-08-16 22:10:35