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()));
        }
Ejemplo n.º 2
0
 public BindField(
     IComplexTypeBindingBuilder typeBuilder,
     IComplexTypeFieldBindingBuilder fieldBuilder)
 {
     _typeBuilder = typeBuilder
                    ?? throw new ArgumentNullException(nameof(typeBuilder));
     _fieldBuilder = fieldBuilder
                     ?? throw new ArgumentNullException(nameof(fieldBuilder));
 }
Ejemplo n.º 3
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));
        }
Ejemplo n.º 4
0
 public BoundType(IComplexTypeBindingBuilder typeBuilder)
 {
     _typeBuilder = typeBuilder
                    ?? throw new ArgumentNullException(nameof(typeBuilder));
 }