/// <summary> /// Creates a new <see cref="DynamicDtoModelBinder"/>. /// </summary> /// <param name="formatters">The list of <see cref="IInputFormatter"/>.</param> /// <param name="readerFactory"> /// The <see cref="IHttpRequestStreamReaderFactory"/>, used to create <see cref="System.IO.TextReader"/> /// instances for reading the request body. /// </param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param> /// <param name="options">The <see cref="MvcOptions"/>.</param> /// <param name="dynamicDtoTypeBuilder">Dynamic DTO builder</param> public DynamicDtoModelBinder( IList <IInputFormatter> formatters, IHttpRequestStreamReaderFactory readerFactory, ILoggerFactory?loggerFactory, MvcOptions?options, IDynamicDtoTypeBuilder dynamicDtoTypeBuilder) { if (formatters == null) { throw new ArgumentNullException(nameof(formatters)); } if (readerFactory == null) { throw new ArgumentNullException(nameof(readerFactory)); } _formatters = formatters; _readerFactory = readerFactory.CreateReader; _logger = loggerFactory?.CreateLogger <DynamicDtoModelBinder>() ?? NullLogger <DynamicDtoModelBinder> .Instance; _options = options; _dtoBuilder = dynamicDtoTypeBuilder; }
/// <summary> /// Creates a new <see cref="DynamicDtoModelBinder"/>. /// </summary> /// <param name="formatters">The list of <see cref="IInputFormatter"/>.</param> /// <param name="readerFactory"> /// The <see cref="IHttpRequestStreamReaderFactory"/>, used to create <see cref="System.IO.TextReader"/> /// instances for reading the request body. /// </param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param> /// <param name="dynamicDtoTypeBuilder">Dynamic DTO builder</param> public DynamicDtoModelBinder( IList <IInputFormatter> formatters, IHttpRequestStreamReaderFactory readerFactory, ILoggerFactory?loggerFactory, IDynamicDtoTypeBuilder dynamicDtoTypeBuilder) : this(formatters, readerFactory, loggerFactory, options : null, dynamicDtoTypeBuilder) { }
/// <summary> /// Creates a new <see cref="DynamicDtoBinderProvider"/>. /// </summary> /// <param name="formatters">The list of <see cref="IInputFormatter"/>.</param> /// <param name="readerFactory">The <see cref="IHttpRequestStreamReaderFactory"/>.</param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param> /// <param name="options">The <see cref="MvcOptions"/>.</param> public DynamicDtoBinderProvider( IList <IInputFormatter> formatters, IHttpRequestStreamReaderFactory readerFactory, ILoggerFactory loggerFactory, MvcOptions?options, IDynamicDtoTypeBuilder dtoBuilder) { if (formatters == null) { throw new ArgumentNullException(nameof(formatters)); } if (readerFactory == null) { throw new ArgumentNullException(nameof(readerFactory)); } _formatters = formatters; _readerFactory = readerFactory; _loggerFactory = loggerFactory; _options = options; _dtoBuilder = dtoBuilder; }
private static DynamicDtoModelBinder CreateBinder(IList <IInputFormatter> formatters, MvcOptions mvcOptions, IDynamicDtoTypeBuilder dtoBuilder) { return(new DynamicDtoModelBinder(formatters, new TestHttpRequestStreamReaderFactory(), NullLoggerFactory.Instance, mvcOptions, dtoBuilder)); }
private static DynamicDtoModelBinder CreateBinder(IList <IInputFormatter> formatters, IDynamicDtoTypeBuilder dtoBuilder) { var options = new MvcOptions(); var binder = CreateBinder(formatters, options, dtoBuilder); //binder.AllowEmptyBody = treatEmptyInputAsDefaultValueOption; return(binder); }