I have the following class
[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;
}
}
When this is serialized using the System.Web.Script.Serialization.JavaScriptSerializer
I'd like it to serialize as the string "Failure"
or "Success"
.
I've tried implementing a custom JavaScriptConverter
but this renders my object as an object with zero or more properties depending on the IDictionary<string, object>
I return.
e.g. When I return and empty IDictionary<string, object>
my object appear as an empty JavaScript object : { }
.
If I return new Dictionary<string, object> { {"_status", status._status}}
my object appears as { "_status" : "Success" }
.
How can I serialize the object just as the string value of it's _status
field?