2010-08-16 10 views
0

je les classes suivantesla difficulté à obtenir une liste d'une classe personnalisée sérialiser pour 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. 
} 

avec ce qui suit dans mon dossier Settings.cs

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

Donc, fondamentalement, j'ai liste d'une classe, cette classe contient un nom et une liste d'une autre classe. Cette classe a plusieurs chaînes, un booléen et un int. Cependant, après l'exécution de mon programme, mon user.config contient ceci.

<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> 

Il a le nom de la ColumnList mais il ne contient pas les éléments Column. Des suggestions sur ce que je fais mal?

Répondre

2

Parce que ...

List<Column> ListOfColumns { get; set;} 

... est privé, le sérialiseur XML ignore.

+0

Merci, je suis un idiot. Donnera la réponse acceptée dès que je peux. –