MongoDB.Bson.Serialization.Conventions.ReadWriteMemberFinderConvention.MapProperty C# (CSharp) Method

MapProperty() private method

private MapProperty ( BsonClassMap classMap, PropertyInfo propertyInfo ) : void
classMap BsonClassMap
propertyInfo System.Reflection.PropertyInfo
return void
        private void MapProperty(BsonClassMap classMap, PropertyInfo propertyInfo)
        {
            if (!propertyInfo.CanRead || (!propertyInfo.CanWrite && classMap.ClassType.Namespace != null))
            {
                // we can't write or it is anonymous...
                return;
            }

            // skip indexers
            if (propertyInfo.GetIndexParameters().Length != 0)
            {
                return;
            }

            // skip overridden properties (they are already included by the base class)
            var getMethodInfo = propertyInfo.GetGetMethod(true);
            if (getMethodInfo.IsVirtual && getMethodInfo.GetBaseDefinition().DeclaringType != classMap.ClassType)
            {
                return;
            }

            classMap.MapMember(propertyInfo);
        }
    }