using System; namespace TweetDuck.Data.Serialization{ sealed class SingleTypeConverter<T> : ITypeConverter{ public delegate string FuncConvertToString<U>(U value); public delegate U FuncConvertToObject<U>(string value); public FuncConvertToString<T> ConvertToString { get; set; } public FuncConvertToObject<T> ConvertToObject { get; set; } bool ITypeConverter.TryWriteType(Type type, object value, out string converted){ try{ converted = ConvertToString((T)value); return true; }catch{ converted = null; return false; } } bool ITypeConverter.TryReadType(Type type, string value, out object converted){ try{ converted = ConvertToObject(value); return true; }catch{ converted = null; return false; } } } }