コード例 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var keyList = new KeyList();

            if (reader.TokenType == JsonToken.StartArray)
            {
                JArray array = JArray.Load(reader);

                var keyCodes = array.ToObject<int[]>();

                for (int i = 0; i < keyCodes.Length; i++)
                {
                    // TODO: Add error handling for invalid values? Or just ignore invalids with a warning in the log
                    var key = (System.Windows.Input.Key)keyCodes[i];

                    keyList.Add(key);
                }

            }

            return keyList;
        }