private void OptInMembersWithBsonCreatorMapModifierAttribute(BsonClassMap classMap) { // let other constructors opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var constructorInfo in classMap.ClassType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { #if NETCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 var hasAttribute = constructorInfo.CustomAttributes.Any(c => c.AttributeType is IBsonCreatorMapAttribute); #else var hasAttribute = constructorInfo.GetCustomAttributes(typeof(IBsonCreatorMapAttribute), false).Any(); #endif if (hasAttribute) { classMap.MapConstructor(constructorInfo); } } // let other static factory methods opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var methodInfo in classMap.ClassType.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { #if NETCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 var hasAttribute = methodInfo.CustomAttributes.Any(c => c.AttributeType is IBsonCreatorMapAttribute); #else var hasAttribute = methodInfo.GetCustomAttributes(typeof(IBsonCreatorMapAttribute), false).Any(); #endif if (hasAttribute) { classMap.MapFactoryMethod(methodInfo); } } }
private void OptInMembersWithBsonCreatorMapModifierAttribute(BsonClassMap classMap) { // let other constructors opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var constructorInfo in classMap.ClassType.GetTypeInfo().GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { var hasAttribute = constructorInfo.GetCustomAttributes(inherit: false).OfType <IBsonCreatorMapAttribute>().Any(); if (hasAttribute) { classMap.MapConstructor(constructorInfo); } } // let other static factory methods opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var methodInfo in classMap.ClassType.GetTypeInfo().GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { var hasAttribute = methodInfo.GetCustomAttributes(inherit: false).OfType <IBsonCreatorMapAttribute>().Any(); if (hasAttribute) { classMap.MapFactoryMethod(methodInfo); } } }
private void OptInMembersWithBsonCreatorMapModifierAttribute(BsonClassMap classMap) { // let other constructors opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var constructorInfo in classMap.ClassType.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { var hasAttribute = constructorInfo.GetCustomAttributes(typeof(IBsonCreatorMapAttribute), false).Any(); if (hasAttribute) { classMap.MapConstructor(constructorInfo); } } // let other static factory methods opt-in if they have any IBsonCreatorMapAttribute attributes foreach (var methodInfo in classMap.ClassType.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly)) { var hasAttribute = methodInfo.GetCustomAttributes(typeof(IBsonCreatorMapAttribute), false).Any(); if (hasAttribute) { classMap.MapFactoryMethod(methodInfo); } } }