/// <summary>
        /// 将js对象转化成.net对象
        /// added by chuan.yin in 2017/5/16
        /// </summary>
        /// <param name="context"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        private object Convert2Object(OriginalJsContext context, object obj)
        {
            if (obj is JsObject)
            {
                var dic = new Dictionary <string, object>();
                var jo  = (JsObject)obj;
                foreach (var item in context.GetMemberNames(jo))
                {
                    var v = context.GetPropertyValue(jo, item);
                    dic.Add(item, Convert2Object(context, v));
                }

                return(dic);
            }
            else if (obj is DateTime)
            {
                return(((DateTime)obj).ToLocalTime());
            }
            else if (obj is JsFunction)
            {
                var jf = (JsFunction)obj;
                return(jf.ToString());
            }
            else
            {
                return(obj);
            }
        }
        /// <summary>
        /// 将js对象转化成.net对象
        /// added by chuan.yin in 2017/5/16
        /// </summary>
        /// <param name="context"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        private object Convert2Object(OriginalJsContext context, object obj)
        {
            if (obj is JsObject)
            {
                var dic = new Dictionary <string, object>();
                var jo  = (JsObject)obj;
                foreach (var item in context.GetMemberNames(jo))
                {
                    var v = context.GetPropertyValue(jo, item);
                    dic.Add(item, Convert2Object(context, v));
                }

                return(dic);
            }
            else if (obj is object[])
            {
                var jo   = (object[])obj;
                var list = new List <object>();
                foreach (var item in jo)
                {
                    list.Add(Convert2Object(context, item));
                }

                return(list.ToArray());
            }
            else if (obj is DateTime)
            {
                //不能转为本地时间
                return((DateTime)obj);
            }
            else if (obj is JsFunction)
            {
                var jf = (JsFunction)obj;
                return(jf.ToString());
            }
            else
            {
                return(obj);
            }
        }
Example #3
0
 public override bool TryGetMember(string mbname, out object result)
 {
     return((result = _context.GetPropertyValue(this, mbname)) != null);
 }
Example #4
0
 public override bool TryGetMember(GetMemberBinder binder, out object result)
 {
     result = _context.GetPropertyValue(this, binder.Name);
     return(true);
 }