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())); }
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)); }