//using Newtonsoft.Json; //using System; //using System.Collections.Generic; //using System.Reflection; //using System.Text; //namespace InABox.Core //{ // [JsonConverter(typeof(FileNameJsonConverter))] // public struct FileName : IConvertible // { // private FileName(String data) // { // Data = data; // } // public static implicit operator FileName(String data) // { // return new FileName(data); // } // public static implicit operator String(FileName memo) // { // return memo.Data; // } // public override string ToString() // { // return Data; // } // public TypeCode GetTypeCode() // { // return ((IConvertible)Data).GetTypeCode(); // } // public bool ToBoolean(IFormatProvider provider) // { // return ((IConvertible)Data).ToBoolean(provider); // } // public byte ToByte(IFormatProvider provider) // { // return ((IConvertible)Data).ToByte(provider); // } // public char ToChar(IFormatProvider provider) // { // return ((IConvertible)Data).ToChar(provider); // } // public DateTime ToDateTime(IFormatProvider provider) // { // return ((IConvertible)Data).ToDateTime(provider); // } // public decimal ToDecimal(IFormatProvider provider) // { // return ((IConvertible)Data).ToDecimal(provider); // } // public double ToDouble(IFormatProvider provider) // { // return ((IConvertible)Data).ToDouble(provider); // } // public short ToInt16(IFormatProvider provider) // { // return ((IConvertible)Data).ToInt16(provider); // } // public int ToInt32(IFormatProvider provider) // { // return ((IConvertible)Data).ToInt32(provider); // } // public long ToInt64(IFormatProvider provider) // { // return ((IConvertible)Data).ToInt64(provider); // } // public sbyte ToSByte(IFormatProvider provider) // { // return ((IConvertible)Data).ToSByte(provider); // } // public float ToSingle(IFormatProvider provider) // { // return ((IConvertible)Data).ToSingle(provider); // } // public string ToString(IFormatProvider provider) // { // return ((IConvertible)Data).ToString(provider); // } // public object ToType(Type conversionType, IFormatProvider provider) // { // return ((IConvertible)Data).ToType(conversionType, provider); // } // public ushort ToUInt16(IFormatProvider provider) // { // return ((IConvertible)Data).ToUInt16(provider); // } // public uint ToUInt32(IFormatProvider provider) // { // return ((IConvertible)Data).ToUInt32(provider); // } // public ulong ToUInt64(IFormatProvider provider) // { // return ((IConvertible)Data).ToUInt64(provider); // } // public String Data { get; set; } // } // public class FileNameJsonConverter : JsonConverter // { // public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) // { // var filename = (FileName)value; // writer.WriteValue(filename.Data); // } // public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) // { // //CoreUtils.LoadAssemblies(); // var filename = new FileName(); // filename.Data = reader.Value != null ? reader.Value.ToString() : ""; // //Dictionary dict = Serialization.Deserialize>(); // // Logic Here // return filename; // } // public override bool CanConvert(Type objectType) // { // return typeof(FileName).GetTypeInfo().IsAssignableFrom(objectType); // } // } //}