Example #1
0
        object ReadConverter(ReflectType ts, ulong oid)
        {
#if __PCL__
            throw new PlatformNotSupportedException("PCL");
#else
            var s  = (string)Read(ReflectType.RString, null);
            var tc = ts.GetTypeConverter();
            if (tc != null)
            {
                var o = tc.ConvertFromInvariantString(s);
                if (oid > 0)
                {
                    Context.Register(oid, o);
                }
                return(o);
            }
            var missing = new Missing(ts);
            if (oid > 0)
            {
                Context.Register(oid, missing);
            }
            missing.ConverterString = s;
            return(missing);
#endif
        }
Example #2
0
        void WriteConverter(ReflectType ots, object value)
        {
            if (value is Missing)
            {
                var m = (Missing)value;
                Write(ReflectType.RString, m.ConverterString);
            }
            else
            {
#if !__PCL__
                var tc = ots.GetTypeConverter();
                if (tc == null)
                {
                    throw new InvalidOperationException("Failed to get converter.");
                }
                var s = tc.ConvertToInvariantString(value);
                Write(ReflectType.RString, s);
#endif
            }
        }