MongoDB.Bson.Serialization.Conventions.NamedParameterCreatorMapConvention.Apply C# (CSharp) Method

Apply() public method

Applies a modification to the creator map.
public Apply ( BsonCreatorMap creatorMap ) : void
creatorMap BsonCreatorMap The creator map.
return void
        public void Apply(BsonCreatorMap creatorMap)
        {
            if (creatorMap.Arguments == null)
            {
                if (creatorMap.MemberInfo != null)
                {
                    var parameters = GetParameters(creatorMap.MemberInfo);
                    if (parameters != null)
                    {
                        var arguments = new List<MemberInfo>();

                        foreach (var parameter in parameters)
                        {
                            var argument = FindMatchingArgument(creatorMap.ClassMap.ClassType, parameter);
                            if (argument == null)
                            {
                            }
                            arguments.Add(argument);
                        }

                        creatorMap.SetArguments(arguments);
                    }
                }
            }
        }

Usage Example

        public void Apply_should_set_arguments_when_constructor_parameter_names_match_a_field()
        {
            var subject = new NamedParameterCreatorMapConvention();
            var classMap = new BsonClassMap<C>();
            var constructorInfo = typeof(C).GetTypeInfo().GetConstructor(new[] { typeof(long) });
            var creatorMap = classMap.MapConstructor(constructorInfo);
            creatorMap.Arguments.Should().BeNull();

            subject.Apply(creatorMap);

            creatorMap.Arguments.Cast<FieldInfo>().Select(p => p.Name).Should().Equal(new[] { "F" });
        }
All Usage Examples Of MongoDB.Bson.Serialization.Conventions.NamedParameterCreatorMapConvention::Apply