У меня есть следующее перечисление
И следующий code выдает исключение
Вероятно, это связано с тем, что сериализованный Json не содержит определения типа, которое намекает на исходный тип перечисления времени выполнения, и похоже, что использование TypeNameAssemblyFormatHandling тоже не помогает.
public enum SomeEnum
{
One,Two, Three
}
Dictionary<Enum, string> map = new Dictionary<Enum, string>()
{ {SomeEnum.One,"1"},{SomeEnum.Two,"2"},{SomeEnum.Three,"3"} };
string mapStr = JsonConvert.SerializeObject(map, Formatting.None,new JsonSerializerSettings() { TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full});
var newMap = JsonConvert.DeserializeObject<Dictionary<Enum, string>>(mapStr);
Newtonsoft.Json.JsonSerializationException: 'Could not convert string 'One' to dictionary key type 'System.Enum'. Create a TypeConverter to convert from the string to the key type object. Path 'One', line 1, position 7.'
Максимильян
Вопрос задан22 января 2024 г.