Сериализация JSON.Net Перечисляет строки в словари по умолчанию - как заставить его сериализовать в int?
Почему мой сериализованный JSON заканчивается как
{"Gender":1,"Dictionary":{"Male":100,"Female":200}}
то есть, почему перечисления сериализуются в соответствии со своими значениями, но когда они образуют ключ к словарю, они преобразуются в свой ключ?
Как мне сделать их словарями в словаре, и почему это не поведение по умолчанию?
Я ожидал следующий вывод
{"Gender":1,"Dictionary":{"0":100,"1":200}}
Спасибо
public void foo()
{
var testClass = new TestClass();
testClass.Gender = Gender.Female;
testClass.Dictionary.Add(Gender.Male, 100);
testClass.Dictionary.Add(Gender.Female, 200);
var serializeObject = JsonConvert.SerializeObject(testClass);
// serializeObject == {"Gender":1,"Dictionary":{"Male":100,"Female":200}}
}
public enum Gender
{
Male = 0,
Female = 1
}
public class TestClass
{
public Gender Gender { get; set; }
public IDictionary<Gender, int> Dictionary { get; set; }
public TestClass()
{
this.Dictionary = new Dictionary<Gender, int>();
}
}
}