我有以下课程
[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
元素。关于我做错了什么的建议?
答案 0 :(得分:2)
由于...
List<Column> ListOfColumns { get; set;}
...是私有的,XML序列化程序忽略它。