public void SetConfigurationItemData(SerializationContext serCtx, object obj, DataItem item) { ICustomDataItem citem = obj as ICustomDataItem; if (citem != null) { ClassTypeHandler handler = new ClassTypeHandler (serCtx, this); citem.Deserialize (handler, item.ItemData); } else Deserialize (serCtx, obj, item.ItemData); }
public override DataNode Serialize(SerializationContext serCtx, object mapData, object obj) { if (obj.GetType () != ValueType) { DataType subtype = Context.GetConfigurationDataType (obj.GetType ()); DataItem it = (DataItem) subtype.Serialize (serCtx, mapData, obj); it.ItemData.Add (new DataValue ("ctype", subtype.Name)); it.Name = Name; return it; } DataItem item = new DataItem (); item.Name = Name; ICustomDataItem citem = obj as ICustomDataItem; if (citem != null) { ClassTypeHandler handler = new ClassTypeHandler (serCtx, this); item.ItemData = citem.Serialize (handler); } else item.ItemData = Serialize (serCtx, obj); return item; }