public MemberMetadata(MemberInfo memberInfo) { _type = MemberType.None; _memberType = null; _mi = null; _fp = null; memberInfo.ThrowIfNull("memberInfo", "Parameter cannot be null."); switch (memberInfo.MemberType) { case MemberTypes.Field: _type = MemberType.Field; _mi = memberInfo; _memberType = (memberInfo as FieldInfo).FieldType; break; case MemberTypes.Property: _type = MemberType.Property; _memberType = (memberInfo as PropertyInfo).PropertyType; _fp = new FastReflection.FastProperty((memberInfo as PropertyInfo), true); _mi = memberInfo; break; default: break; } }