Какой параметр я должен изменить, чтобы получить значение int для перечисления вместо его строкового представления при сериализации?

Какой параметр я должен изменить, чтобы получить значение свойства перечисления вместо его строкового представления при сериализации объекта? У меня есть следующий класс.

public class ProductModel
{
    public long ProductId { get; set; }

    public int ContainerType { get; set; }

    public SolidForm SolidForm { get; set; }
}

(например) СЕЙЧАС ---> мой JSON =

{ "ProductId" : 22222,
  "ContainerType" : 1111,
  "SolidForm" : "Solid"
}

но мне нужно это после сериализации. (не перечислять как строку)

{ "ProductId" : 22222,
  "ContainerType" : 1111,
  "SolidForm" : 1
}

Я хочу, чтобы все перечисления в моем объекте преобразовывались в int.

это мои настройки сериализации Json

JsonSerializerSettings = new JsonSerializerSettings
    {
        DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
        Error = delegate (object sender, ErrorEventArgs args)
        {
            args.ErrorContext.Handled = true;
        }
    }

1 ответ

По умолчанию в Newtonsoft.Json сериализуются перечисления как int. Предполагая, что вы имеете в виду Newtonsoft.Json.

Ваш enum украшен атрибутом [JsonConverter(typeof(StringEnumConverter))]?

Другие вопросы по тегам