public virtual void Serialize(YamlFluentSerializer serializer) { serializer.Begin(YamlContainerType.Dictionary) .Add("Id", this.Id.Value); if (this.Guard != TaskId.Invalid) { serializer.Add("Guard", this.Guard.Value); } serializer.End(); }
// ------------------------------------------------------------------- // Public // ------------------------------------------------------------------- /// <summary> /// Serialize the given tree to string format using Json /// </summary> /// <param name="tree">the tree to serialize</param> /// <returns>the string data for the tree</returns> /// <exception cref="SerializationException">if any data is not able to serialize</exception> public string Serialize(BehaviorStream <T> tree) { var serializer = new YamlFluentSerializer(); serializer.Begin(YamlContainerType.Dictionary) .Add("Size", tree.stream.Length) .Add("GrowBy", tree.GrowBy) .Add("RootId", tree.Root.Value) .End(); serializer.Begin(YamlContainerType.Dictionary); for (var i = 0; i < tree.stream.Length; i++) { if (tree.stream[i] == null) { serializer.Add(i); continue; } serializer.Add(i, tree.stream[i].GetType().AssemblyQualifiedName); } serializer.End(); serializer.Begin(YamlContainerType.Dictionary); for (var i = 0; i < tree.stream.Length; i++) { if (tree.stream[i] == null) { serializer.Add(i); continue; } serializer.Add(i, tree.stream[i]); } serializer.End(); return(serializer.Serialize()); }