@ Игги ответ устанавливает JSON-сериализацию перечисления c # в виде строки только для ASP.NET (веб-API и т. Д.).
Но для того, чтобы это работало и со специальной сериализацией, добавьте следующее в ваш начальный класс (например, Global.asax Application_Start)
//convert Enums to Strings (instead of Integer) globally
JsonConvert.DefaultSettings = (() =>
{
var settings = new JsonSerializerSettings();
settings.Converters.Add(new StringEnumConverter { CamelCaseText = true });
return settings;
});
Дополнительная информация на странице Json.NET
Кроме того, чтобы ваш член enum мог сериализовать / десериализовать в / из определенного текста, используйте
System.Runtime.Serialization.EnumMember
Атрибут
, например:
public enum time_zone_enum
{
[EnumMember(Value = "Europe/London")]
EuropeLondon,
[EnumMember(Value = "US/Alaska")]
USAlaska
}