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); } } }