Когда я сериализую значение enum с помощью DataContractJsonSerializer, он сериализует числовое значение перечисления, а не имя строки.
IE:
enum foo
{
bar,
baz
}
Сериализация значения foo.bar возвращает "0", а не "bar".
Я бы предпочел это наоборот, есть ли способ переопределить это?
Изменить:
Поскольку я не хотел менять сериализатор, я использовал простой обходной хак.
Я выставил свойство в классе для сериализации, которое вызывает ToString для значения, то есть:
// Old
[DataMember]
public EnumType Foo
{
get { return _foo; }
set { _foo = value; }
}
// New, I still kept the EnumType but I only serialize the string version
public EnumType Foo
{
get { return _foo; }
set { _foo = value; }
}
[DataMember]
public string FooType
{
get { return _foo.ToString(); }
private set {}
}