using System;
using Newtonsoft.Json;
namespace OpenStack.Serialization
{
///
/// Attempts to convert a string to a .
///
///
public class StringEnumerationConverter : JsonConverter
{
///
public override bool CanConvert(Type objectType)
{
return objectType.IsSubclassOf(typeof(StringEnumeration));
}
///
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
string displayName = serializer.Deserialize(reader);
return StringEnumeration.FromDisplayName(objectType, displayName);
}
///
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var enumeration = (StringEnumeration)value;
serializer.Serialize(writer, enumeration.DisplayName);
}
}
}