internal static string GetSerializedArguments(string shortcutId, string uri)
        {
            var args = new JumpListArguments
            {
                ShortcutId = shortcutId,
                Uri        = uri
            };

            using (var ms = new MemoryStream())
            {
                var ser = new DataContractJsonSerializer(typeof(JumpListArguments));
                ser.WriteObject(ms, args);
                byte[] json = ms.ToArray();
                return(Encoding.UTF8.GetString(json, 0, json.Length));
            }
        }
        internal static JumpListArguments DeserializeArguments(string json)
        {
            // Support for backwards compatibility from v0.5
            if (json.Contains("||"))
            {
                var parts = json.Split(new[] { "||" }, StringSplitOptions.RemoveEmptyEntries);
                return(new JumpListArguments(parts[0], parts[1]));
            }

            var args = new JumpListArguments();

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                var ser = new DataContractJsonSerializer(args.GetType());
                args = ser.ReadObject(ms) as JumpListArguments;
                return(args);
            }
        }