예제 #1
0
        /// <summary>
        /// <para>Creates a new token which is the merge of the passed tokens</para>
        /// </summary>
        /// <param name="left">Token</param>
        /// <param name="right">Token to merge, overwriting the left</param>
        /// <param name="options">Options for merge</param>
        /// <returns>A new merged token</returns>
        public static JToken Merge(
            this JToken left, JToken right, MergeOptions options)
        {
            if (left.Type != JTokenType.Object)
            {
                return(right.DeepClone());
            }

            var leftClone = (JContainer)left.DeepClone();

            MergeInto(leftClone, right, options);

            return(leftClone);
        }
 static int DeepClone(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         Newtonsoft.Json.Linq.JToken obj = (Newtonsoft.Json.Linq.JToken)ToLua.CheckObject(L, 1, typeof(Newtonsoft.Json.Linq.JToken));
         Newtonsoft.Json.Linq.JToken o   = obj.DeepClone();
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }