using System.Collections.Generic;
using System.Collections;
public static void Main()
""name"":""Object Name"",
Console.WriteLine(JsonConvert.DeserializeObject<Model>(json));
public string Name { get; set; }
public StrictDictionary<string, string> Attributes { get; set; }
public class StrictDictionary<TKey, TValue> : IDictionary<TKey, TValue>
public Dictionary<TKey, TValue> InnerDictionary {get; set; } = new Dictionary<TKey, TValue>();
public bool ContainsKey(TKey key) => InnerDictionary.ContainsKey(key);
public void Add(TKey key, TValue value) => InnerDictionary.Add(key, value);
void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TValue> kvp) => ((ICollection<KeyValuePair<TKey, TValue>>) InnerDictionary).Add(kvp);
bool ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKey, TValue> kvp) => ((ICollection<KeyValuePair<TKey, TValue>>) InnerDictionary).Contains(kvp);
void ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey, TValue>[] array, int i) => ((ICollection<KeyValuePair<TKey, TValue>>) InnerDictionary).CopyTo(array, i);
public void Clear() => InnerDictionary.Clear();
public bool Remove(TKey key) => InnerDictionary.Remove(key);
bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey, TValue> kvp) => ((ICollection<KeyValuePair<TKey, TValue>>) InnerDictionary).Remove(kvp);
public bool TryGetValue(TKey key, out TValue value) => InnerDictionary.TryGetValue(key, out value);
public ICollection<TKey> Keys => InnerDictionary.Keys;
public ICollection<TValue> Values => InnerDictionary.Values;
public int Count => InnerDictionary.Count;
public bool IsReadOnly => ((ICollection<KeyValuePair<TKey, TValue>>) InnerDictionary).IsReadOnly;
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() => InnerDictionary.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => InnerDictionary.GetEnumerator();
public TValue this[TKey key]
get => InnerDictionary[key];
set => InnerDictionary.Add(key, value);