示例#1
0
        /// <summary>
        /// This method deserialize xml data to object. Use this method when you don't know the type yet.
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        static internal object ObjectFromXml(XElement item)
        {
            if (item == null || item.Value == "")
            {
                return(null);
            }
            Object value = "";
            // Obtain CrmType. I haven't cover all types yet.
            string CrmType = item.Attribute(Util.ns.i + "type").Value.Substring(2);

            switch (CrmType)
            {
            case "long":
                value = Util.LoadFromXml <long>(item);
                break;

            case "decimal":
                value = Util.LoadFromXml <decimal>(item);
                break;

            case "string":
                value = item.Value;
                break;

            case "base64Binary":
                value = Convert.FromBase64String(item.Value);
                break;

            case "int":
                value = Util.LoadFromXml <int>(item);
                break;

            case "double":
                value = Util.LoadFromXml <double>(item);
                break;

            case "dateTime":
                value = Util.LoadFromXml <DateTime>(item);
                break;

            case "guid":
                value = Util.LoadFromXml <Guid>(item);
                break;

            case "boolean":
                value = Util.LoadFromXml <bool>(item);
                break;

            case "EntityReference":
                value = EntityReference.LoadFromXml(item);
                break;

            case "AliasedValue":
                value = AliasedValue.LoadFromXml(item);
                break;

            case "OptionSetValue":
                value = OptionSetValue.LoadFromXml(item);
                break;

            case "Money":
                value = Money.LoadFromXml(item);
                break;

            case "EntityCollection":
                value = EntityCollection.LoadFromXml(item);
                break;

            default:
                break;
            }
            return(value);
        }