Изначально я думал, что Json.Net и StringEnumConverter используются по умолчанию для этого преобразования, и написал подкласс, который может преобразовывать пропущенные значения, но при проверке трассировки стека выяснилось, что используется EnumDataContract.ReadEnumValue.
Если есть изменения в определении перечисления, я хочу чтобы иметь возможность обрабатывать значение в каждом конкретном случае, до которого значение должно десериализоваться.
Например, вместо получения ожидаемой ниже ошибки из-за изменения ConditionType я хотел бы быть возможность указать словарь, который будет использоваться в случае сбоя, т. е. {"TestComplete":ConditionType.InvalidValue
Код: Выделить всё
UnhandledException caught (SerializationException): Invalid enum value 'TestComplete' cannot be deserialized into type 'ConditionType'. Ensure that the necessary enum values are present and are marked with EnumMemberAttribute attribute if the type has DataContractAttribute attribute.
Мой член перечисления помечен, как показано ниже.
Мой член перечисления помечен, как показано ниже.
Мой член перечисления помечен, как показано ниже.
р>
Код: Выделить всё
[DataMember]
public ConditionType Type { get; set; }
Подробнее здесь: https://stackoverflow.com/questions/783 ... ialisation