internal object Deserialize(Type type, XElement elm) { object ret = null; eBehavior b = GetBehaviorOf(type); switch (b) { case eBehavior.String: ret = DeserializeString(elm); break; case eBehavior.Boolean: ret = DeserializeBoolean(elm); break; case eBehavior.Enum: ret = DeserializeEnum(type, elm); break; case eBehavior.List: ret = DeserializeList(type, elm); break; case eBehavior.DataType: ret = DeserializeObject(type, elm); break; default: throw new NotSupportedException(); } return(ret); }
private void SerializeItem(EXmlWriter wrt, string elementName, object item, Type desiredType) { eBehavior beh = GetBehaviorOf(item.GetType()); switch (beh) { case eBehavior.Primitive: case eBehavior.String: WriteToStringAsElement(wrt, elementName, item, null); break; case eBehavior.IEnumerable: SaveObject(wrt, item, elementName, desiredType, true); break; case eBehavior.DataType: SaveObject(wrt, item, elementName, desiredType, false); break; default: throw new NotImplementedException(); } }