Пример #1
0
        //not sure about the date handling here
        public override IDictionary <string, object> Serialize(object obj, JavaScriptSerializer serializer)
        {
            IDictionary <string, object> values = new Dictionary <string, object>();

            if (obj is IDynamic)
            {
                IDynamic idynamicObj      = (IDynamic)obj;
                var      properties       = idynamicObj.GetDynamicMemberNames().ToList();
                var      staticProperties = idynamicObj.SerializableProperties();
                if (staticProperties != null)
                {
                    properties.AddRange(staticProperties);
                }
                //not sure how enums will be handled
                //strings and numbers should be ok
                foreach (var item in properties)
                {
                    var value = idynamicObj[item];
                    values.Add(item, value);
                }
            }
            return(values);
        }