MyClassリストを含むクラスであるをシリアル化したいMyClass。
XMLでは、書きたいだけですmyClass.Name。それを逆シリアル化するとMyClass、どちらが他のどのにあるべきかがわかりますMyClass。MyClassのリストをのリストに適切にシリアル化する次のコードがありますstring。ただし、文字列のリストは逆シリアル化されません。
//List of actual object. It's what I use when I work with the object.
[XmlIgnore]
public List<TaskConfiguration> ChildTasks { get; set; }
//Used by the serializer to get the string list, and used
//by the serializer to deserialize the string list to.
[XmlArray("ChildTasks")]
public List<string> ChildTasksSurrogate
{
get
{
List<string> childTaskList = new List<string>();
if (ChildTasks != null)
childTaskList.AddRange(ChildTasks.Select(ct => ct.Name).ToList());
if (_childTasksSurrogate != null)
childTaskList.AddRange(_childTasksSurrogate);
//Clears it not to use it when it serializes.
_childTasksSurrogate = null;
return childTaskList;
}
set
{
_childTasksSurrogate = value;
}
}
[XmlIgnore]
private List<string> _childTasksSurrogate;
私が言ったように、シリアル化は機能します。問題は逆シリアル化にあります。デシリアライズ後、MyClass._childTasksSurrogateはですnull。