KnowledgeBase.KB.GetObjectData C# (CSharp) Method

GetObjectData() public method

public GetObjectData ( ISerializationData dataHolder, ISerializationContext context ) : void
dataHolder ISerializationData
context ISerializationContext
return void
        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);
                }
            }
        }