public void GetObjectData(ISerializationData dataHolder, ISerializationContext context)
{
dataHolder.SetValue("Perspective",Perspective);
var knowledge = dataHolder.ParentGraph.CreateObjectData();
dataHolder.SetValueGraphNode("Knowledge",knowledge);
foreach (var entry in m_knowledgeStorage)
{
foreach (var perspective in entry.Value.GetPerspectives())
{
var key = Perspective2String(perspective.Key);
IGraphNode node;
if (!knowledge.TryGetField(key, out node))
{
node = dataHolder.ParentGraph.CreateObjectData();
knowledge[key] = node;
}
((IObjectGraphNode)node)[entry.Key.ToString()] = dataHolder.ParentGraph.BuildNode(perspective.Value);
}
}
}