Пример #1
0
        internal Member(MemberInfo memberInfo, bool emitDynamicValueProvider)
        {
            MemberInfo = memberInfo;
            switch (memberInfo.MemberType)
            {
            case MemberTypes.Field:
                Type     = ((FieldInfo)memberInfo).FieldType;
                CanWrite = true;
                break;

            case MemberTypes.Property:
                var propertyInfo = (PropertyInfo)memberInfo;
                Type     = propertyInfo.PropertyType;
                CanWrite = propertyInfo.CanWrite;
                break;

            default:
                throw new NotSupportedException();
            }

            if (emitDynamicValueProvider)
            {
                valueProvider = new DynamicMemberValueProvider(memberInfo);
            }
            else
            {
                valueProvider = new ReflectionMemberValueProvider(memberInfo);
            }
            HasDynamicValueProvider = emitDynamicValueProvider;
        }
Пример #2
0
        internal Member(MemberInfo memberInfo, bool emitDynamicValueProvider)
        {
            MemberInfo = memberInfo;
            switch (memberInfo.MemberType)
            {
                case MemberTypes.Field:
                    Type = ((FieldInfo)memberInfo).FieldType;
                    CanWrite = true;
                    break;
                case MemberTypes.Property:
                    var propertyInfo = (PropertyInfo)memberInfo;
                    Type = propertyInfo.PropertyType;
                    CanWrite = propertyInfo.CanWrite;
                    break;
                default:
                    throw new NotSupportedException();
            }

            if (emitDynamicValueProvider)
                valueProvider = new DynamicMemberValueProvider(memberInfo);
            else
                valueProvider = new ReflectionMemberValueProvider(memberInfo);
            HasDynamicValueProvider = emitDynamicValueProvider;
        }