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; }
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; }