У меня есть следующий класс
[Serializable]
public class ApiRequestStatus :IEquatable<ApiRequestStatus>
{
public static readonly ApiRequestStatus Failure =
new ApiRequestStatus("Failure");
public static readonly ApiRequestStatus Success =
new ApiRequestStatus("Success");
private string _status;
private ApiRequestStatus(string status)
{
this._status = status;
}
public override string ToString()
{
return _status;
}
public bool Equals(ApiRequestStatus other)
{
return this._status == other._status;
}
}
Когда это сериализовано с использованием System.Web.Script.Serialization.JavaScriptSerializer
Я бы хотел, чтобы он сериализовался как строка "Failure"
или "Success"
.
Я пытался реализовать пользовательский JavaScriptConverter
, но это рендерит мой объект как объект с нулевым или большим количеством свойств в зависимости от IDictionary<string, object>
возвращаемого мной.
например, когда я возвращаюсь и очищаюIDictionary<string, object>
мой объект выглядит как пустой объект JavaScript: { }
.
Если я верну new Dictionary<string, object> { {"_status", status._status}}
, мой объект будет выглядеть как { "_status" : "Success" }
.
Как я могу сериализовать объект так же, как строковое значение его поля _status
?