public static ISchemaBuilder BindComplexType <T>(
            this ISchemaBuilder builder,
            BindingBehavior bindingBehavior,
            Action <IBindType <T> > configure)
            where T : class
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (bindingBehavior == BindingBehavior.Explicit &&
                configure == null)
            {
                throw new ArgumentNullException(nameof(configure));
            }

            IComplexTypeBindingBuilder bindingBuilder =
                ComplexTypeBindingBuilder.New()
                .SetFieldBinding(bindingBehavior)
                .SetType(typeof(T));

            if (configure != null)
            {
                configure(new BindType <T>(bindingBuilder));
            }

            return(builder.AddBinding(bindingBuilder.Create()));
        }
Example #2
0
        public IBindType <T> BindType <T>(
            BindingBehavior bindingBehavior)
            where T : class
        {
            IComplexTypeBindingBuilder builder =
                ComplexTypeBindingBuilder.New()
                .SetFieldBinding(bindingBehavior)
                .SetType(typeof(T));

            _bindingBuilders.Add(builder);
            return(new BindType <T>(builder));
        }