Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
            }
        }