private static IMemberGetterHandler <WriterState> CreateHandlerForObject(Type type, MemberInfo prop)
        {
            var getter = new MemberGetter <object>(type, prop.Name);

            if (!getter.IsValid)
            {
                return(null);
            }

            var memberType = getter.MemberInfo.GetMemberType();

            if (memberType == typeof(object) || Nullable.GetUnderlyingType(memberType) != null)
            {
                return((IMemberGetterHandler <WriterState>)Activator.CreateInstance(typeof(MemberGetterHandlers.ObjectHandler), getter));
            }

            return((IMemberGetterHandler <WriterState>)Activator.CreateInstance(typeof(MemberGetterHandlers.TypedObjectHandler <>).MakeGenericType(memberType), getter));
        }
示例#2
0
 public GuidHandler(MemberGetter <Guid> getter) : base(getter)
 {
 }
示例#3
0
 public DateTimeHandler(MemberGetter <DateTime> getter) : base(getter)
 {
 }
示例#4
0
 public CharHandler(MemberGetter <char> getter) : base(getter)
 {
 }
示例#5
0
 public TypedObjectHandler(MemberGetter <object> getter) : base(getter)
 {
 }
示例#6
0
 public ByteHandler(MemberGetter <byte> getter) : base(getter)
 {
 }
示例#7
0
 public StringHandler(MemberGetter <string> getter) : base(getter)
 {
 }
        private static IMemberGetterHandler <WriterState> CreateHandlerForDecimal(Type type, MemberInfo prop)
        {
            var getter = new MemberGetter <decimal>(type, prop.Name);

            return(!getter.IsValid ? null : new MemberGetterHandlers.DecimalHandler(getter));
        }
示例#9
0
 public UIntHandler(MemberGetter <uint> getter) : base(getter)
 {
 }
示例#10
0
 public UShortHandler(MemberGetter <ushort> getter) : base(getter)
 {
 }
示例#11
0
 public FloatHandler(MemberGetter <float> getter) : base(getter)
 {
 }
示例#12
0
 public BoolHandler(MemberGetter <bool> getter) : base(getter)
 {
 }
        private static IMemberGetterHandler <WriterState> CreateHandlerForString(Type type, MemberInfo prop)
        {
            var getter = new MemberGetter <string>(type, prop.Name);

            return(!getter.IsValid ? null : new MemberGetterHandlers.StringHandler(getter));
        }
        private static IMemberGetterHandler <WriterState> CreateHandlerForUShort(Type type, MemberInfo prop)
        {
            var getter = new MemberGetter <ushort>(type, prop.Name);

            return(!getter.IsValid ? null : new MemberGetterHandlers.UShortHandler(getter));
        }
示例#15
0
 public DecimalHandler(MemberGetter <decimal> getter) : base(getter)
 {
 }
示例#16
0
 public ULongHandler(MemberGetter <ulong> getter) : base(getter)
 {
 }
示例#17
0
 public DoubleHandler(MemberGetter <double> getter) : base(getter)
 {
 }
示例#18
0
 protected MemberGetterHandlerBase(MemberGetter <TResult> getter)
 {
     this.getter = getter;
 }