using System; using System.Reflection; using Newtonsoft.Json; namespace Abp.Localization { /// /// This class can be used to serialize to during serialization. /// It does not work for deserialization. /// public class LocalizableStringToStringJsonConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } var localizableString = (ILocalizableString) value; writer.WriteValue(localizableString.Localize(new LocalizationContext(LocalizationHelper.Manager))); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { throw new NotImplementedException(); } public override bool CanConvert(Type objectType) { return typeof (ILocalizableString).GetTypeInfo().IsAssignableFrom(objectType); } } }