1 interface inheriting from IModelBinder
Microsoft.AspNetCore.Mvc.Core (1)
ModelBinding\ICollectionModelBinder.cs (1)
11public interface ICollectionModelBinder : IModelBinder
20 implementations of IModelBinder
Microsoft.AspNetCore.Mvc.Core (20)
ModelBinding\Binders\BinderTypeModelBinder.cs (1)
15public class BinderTypeModelBinder : IModelBinder
ModelBinding\Binders\BodyModelBinder.cs (1)
20public partial class BodyModelBinder : IModelBinder
ModelBinding\Binders\ByteArrayModelBinder.cs (1)
13public class ByteArrayModelBinder : IModelBinder
ModelBinding\Binders\CancellationTokenModelBinder.cs (1)
13public class CancellationTokenModelBinder : IModelBinder
ModelBinding\Binders\ComplexObjectModelBinder.cs (1)
18public sealed partial class ComplexObjectModelBinder : IModelBinder
ModelBinding\Binders\ComplexTypeModelBinder.cs (1)
19public partial class ComplexTypeModelBinder : IModelBinder
ModelBinding\Binders\DateTimeModelBinder.cs (1)
14public class DateTimeModelBinder : IModelBinder
ModelBinding\Binders\DecimalModelBinder.cs (1)
16public class DecimalModelBinder : IModelBinder
ModelBinding\Binders\DoubleModelBinder.cs (1)
16public class DoubleModelBinder : IModelBinder
ModelBinding\Binders\FloatModelBinder.cs (1)
16public class FloatModelBinder : IModelBinder
ModelBinding\Binders\FormCollectionModelBinder.cs (1)
17public class FormCollectionModelBinder : IModelBinder
ModelBinding\Binders\FormFileModelBinder.cs (1)
18public partial class FormFileModelBinder : IModelBinder
ModelBinding\Binders\HeaderModelBinder.cs (1)
17public class HeaderModelBinder : IModelBinder
ModelBinding\Binders\KeyedServicesModelBinder.cs (1)
11internal class KeyedServicesModelBinder : IModelBinder
ModelBinding\Binders\KeyValuePairModelBinder.cs (1)
15public class KeyValuePairModelBinder<TKey, TValue> : IModelBinder
ModelBinding\Binders\ServicesModelBinder.cs (1)
15public class ServicesModelBinder : IModelBinder
ModelBinding\Binders\SimpleTypeModelBinder.cs (1)
15public class SimpleTypeModelBinder : IModelBinder
ModelBinding\Binders\TryParseModelBinder.cs (1)
15internal sealed class TryParseModelBinder : IModelBinder
ModelBinding\NoOpBinder.cs (1)
8internal sealed class NoOpBinder : IModelBinder
ModelBinding\PlaceholderBinder.cs (1)
14internal sealed class PlaceholderBinder : IModelBinder
190 references to IModelBinder
Microsoft.AspNetCore.Mvc.Abstractions (22)
ModelBinding\BindingInfo.cs (4)
53/// Gets or sets the <see cref="Type"/> of the <see cref="IModelBinder"/> implementation used to bind the 57/// Also set <see cref="BindingSource"/> if the specified <see cref="IModelBinder"/> implementation does not 65if (value != null && !typeof(IModelBinder).IsAssignableFrom(value)) 70typeof(IModelBinder).FullName),
ModelBinding\BindingSource.cs (2)
147/// Set <see cref="IsGreedy"/> to <c>true</c> for most custom <see cref="IModelBinder"/> implementations. 150/// If a source represents an <see cref="IModelBinder"/> which will recursively traverse a model's properties
ModelBinding\IBinderTypeProviderMetadata.cs (2)
7/// Provides a <see cref="Type"/> which implements <see cref="IModelBinder"/>. 12/// A <see cref="Type"/> which implements either <see cref="IModelBinder"/>.
ModelBinding\IModelBinderProvider.cs (4)
7/// Creates <see cref="IModelBinder"/> instances. Register <see cref="IModelBinderProvider"/> 13/// Creates a <see cref="IModelBinder"/> based on <see cref="ModelBinderProviderContext"/>. 16/// <returns>An <see cref="IModelBinder"/>.</returns> 17IModelBinder? GetBinder(ModelBinderProviderContext context);
ModelBinding\ModelBinderProviderContext.cs (6)
12/// Creates an <see cref="IModelBinder"/> for the given <paramref name="metadata"/>. 15/// <returns>An <see cref="IModelBinder"/>.</returns> 16public abstract IModelBinder CreateBinder(ModelMetadata metadata); 19/// Creates an <see cref="IModelBinder"/> for the given <paramref name="metadata"/> 25/// <returns>An <see cref="IModelBinder"/>.</returns> 26public virtual IModelBinder CreateBinder(ModelMetadata metadata, BindingInfo bindingInfo)
ModelBinding\ModelBindingContext.cs (3)
117/// Before an <see cref="IModelBinder"/> is called, <see cref="Result"/> will be set to a value indicating 125/// Pushes a layer of state onto this context. <see cref="IModelBinder"/> implementations will call this as 145/// Pushes a layer of state onto this context. <see cref="IModelBinder"/> implementations will call this as
ModelBinding\ModelMetadata.cs (1)
206/// Gets the <see cref="Type"/> of an <see cref="IModelBinder"/> of a model if specified explicitly using
Microsoft.AspNetCore.Mvc.Core (164)
BindPropertyAttribute.cs (4)
11/// An attribute that can specify a model name or type of <see cref="IModelBinder"/> to use for binding the 39/// correct for the specified (non-<see langword="null"/>) <see cref="IModelBinder"/> implementation. 46if (value != null && !typeof(IModelBinder).IsAssignableFrom(value)) 51typeof(IModelBinder).FullName),
Controllers\ControllerBinderDelegateProvider.cs (4)
149var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext 179var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext 194public BinderItem(IModelBinder modelBinder, ModelMetadata modelMetadata) 200public IModelBinder ModelBinder { get; }
ModelBinderAttribute.cs (5)
10/// An attribute that can specify a model name or type of <see cref="IModelBinder"/> to use for binding. 42/// <param name="binderType">A <see cref="Type"/> which implements <see cref="IModelBinder"/>.</param> 57/// correct for the specified (non-<see langword="null"/>) <see cref="IModelBinder"/> implementation. 64if (value != null && !typeof(IModelBinder).IsAssignableFrom(value)) 69typeof(IModelBinder).FullName),
ModelBinderOfTAttribute.cs (2)
9/// <typeparam name="TBinder">A <see cref="Type"/> which implements <see cref="IModelBinder"/>.</typeparam> 14public class ModelBinderAttribute<TBinder> : ModelBinderAttribute where TBinder : IModelBinder
ModelBinding\Binders\ArrayModelBinder.cs (7)
13/// <see cref="IModelBinder"/> implementation for binding array values. 22/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 25public ArrayModelBinder(IModelBinder elementBinder, ILoggerFactory loggerFactory) 34/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 48IModelBinder elementBinder, 59/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 77IModelBinder elementBinder,
ModelBinding\Binders\ArrayModelBinderProvider.cs (3)
18public IModelBinder? GetBinder(ModelBinderProviderContext context) 26var elementBinder = context.CreateBinder(context.Metadata.ElementMetadata); 30return (IModelBinder)Activator.CreateInstance(
ModelBinding\Binders\BinderTypeModelBinder.cs (7)
12/// An <see cref="IModelBinder"/> for models which specify an <see cref="IModelBinder"/> using 22/// <param name="binderType">The <see cref="Type"/> of the <see cref="IModelBinder"/>.</param> 27if (!typeof(IModelBinder).IsAssignableFrom(binderType)) 32typeof(IModelBinder).FullName), 45var binder = (IModelBinder)_factory(requestServices, arguments: null);
ModelBinding\Binders\BinderTypeModelBinderProvider.cs (2)
9/// An <see cref="IModelBinderProvider"/> for models which specify an <see cref="IModelBinder"/> 15public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\BodyModelBinder.cs (1)
17/// An <see cref="IModelBinder"/> which binds models from the request body using an <see cref="IInputFormatter"/>
ModelBinding\Binders\BodyModelBinderProvider.cs (1)
68public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\ByteArrayModelBinderProvider.cs (1)
17public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\CancellationTokenModelBinder.cs (1)
11/// <see cref="IModelBinder"/> implementation to bind models of type <see cref="CancellationToken"/>.
ModelBinding\Binders\CancellationTokenModelBinderProvider.cs (1)
18public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\CollectionModelBinder.cs (9)
19/// <see cref="IModelBinder"/> implementation for binding collection values. 32/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 35public CollectionModelBinder(IModelBinder elementBinder, ILoggerFactory loggerFactory) 44/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 53IModelBinder elementBinder, 69/// The <see cref="IModelBinder"/> for binding <typeparamref name="TElement"/>. 80IModelBinder elementBinder, 95/// Gets the <see cref="IModelBinder"/> instances for binding collection elements. 97protected IModelBinder ElementBinder { get; }
ModelBinding\Binders\CollectionModelBinderProvider.cs (5)
19public IModelBinder? GetBinder(ModelBinderProviderContext context) 54private static IModelBinder CreateInstance(ModelBinderProviderContext context, Type collectionType) 58var elementBinder = context.CreateBinder(context.MetadataProvider.GetMetadataForType(elementType)); 62var binder = (IModelBinder)Activator.CreateInstance(
ModelBinding\Binders\ComplexObjectModelBinder.cs (11)
16/// <see cref="IModelBinder"/> implementation for binding complex types. 33private readonly IDictionary<ModelMetadata, IModelBinder> _propertyBinders; 34private readonly IReadOnlyList<IModelBinder> _parameterBinders; 39IDictionary<ModelMetadata, IModelBinder> propertyBinders, 40IReadOnlyList<IModelBinder> parameterBinders, 249var parameterBinder = _parameterBinders[i]; 300var parameterBinder = _parameterBinders[i]; 341var propertyBinder = _propertyBinders[property]; 392var propertyBinder = _propertyBinders[property]; 436IModelBinder propertyBinder, 481IModelBinder parameterBinder,
ModelBinding\Binders\ComplexObjectModelBinderProvider.cs (6)
17public IModelBinder? GetBinder(ModelBinderProviderContext context) 28var propertyBinders = new Dictionary<ModelMetadata, IModelBinder>(); 41private static IReadOnlyList<IModelBinder> GetParameterBinders(ModelBinderProviderContext context) 46return Array.Empty<IModelBinder>(); 50Array.Empty<IModelBinder>() : 51new IModelBinder[boundConstructor.BoundConstructorParameters.Count];
ModelBinding\Binders\ComplexTypeModelBinder.cs (5)
16/// <see cref="IModelBinder"/> implementation for binding complex types. 34private readonly IDictionary<ModelMetadata, IModelBinder> _propertyBinders; 46IDictionary<ModelMetadata, IModelBinder> propertyBinders, 66IDictionary<ModelMetadata, IModelBinder> propertyBinders, 308var binder = _propertyBinders[bindingContext.ModelMetadata];
ModelBinding\Binders\ComplexTypeModelBinderProvider.cs (2)
18public IModelBinder GetBinder(ModelBinderProviderContext context) 24var propertyBinders = new Dictionary<ModelMetadata, IModelBinder>();
ModelBinding\Binders\DateTimeModelBinder.cs (1)
12/// An <see cref="IModelBinder"/> for <see cref="DateTime"/> and nullable <see cref="DateTime"/> models.
ModelBinding\Binders\DateTimeModelBinderProvider.cs (1)
20public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\DecimalModelBinder.cs (1)
13/// An <see cref="IModelBinder"/> for <see cref="decimal"/> and <see cref="Nullable{T}"/> where <c>T</c> is
ModelBinding\Binders\DictionaryModelBinder.cs (14)
14/// <see cref="IModelBinder"/> implementation for binding dictionary values. 20private readonly IModelBinder _valueBinder; 25/// <param name="keyBinder">The <see cref="IModelBinder"/> for <typeparamref name="TKey"/>.</param> 26/// <param name="valueBinder">The <see cref="IModelBinder"/> for <typeparamref name="TValue"/>.</param> 28public DictionaryModelBinder(IModelBinder keyBinder, IModelBinder valueBinder, ILoggerFactory loggerFactory) 39/// <param name="keyBinder">The <see cref="IModelBinder"/> for <typeparamref name="TKey"/>.</param> 40/// <param name="valueBinder">The <see cref="IModelBinder"/> for <typeparamref name="TValue"/>.</param> 55IModelBinder keyBinder, 56IModelBinder valueBinder, 73/// <param name="keyBinder">The <see cref="IModelBinder"/> for <typeparamref name="TKey"/>.</param> 74/// <param name="valueBinder">The <see cref="IModelBinder"/> for <typeparamref name="TValue"/>.</param> 93IModelBinder keyBinder, 94IModelBinder valueBinder,
ModelBinding\Binders\DictionaryModelBinderProvider.cs (4)
19public IModelBinder? GetBinder(ModelBinderProviderContext context) 30var keyBinder = context.CreateBinder(context.MetadataProvider.GetMetadataForType(keyType)); 33var valueBinder = context.CreateBinder(context.MetadataProvider.GetMetadataForType(valueType)); 37return (IModelBinder)Activator.CreateInstance(
ModelBinding\Binders\DoubleModelBinder.cs (1)
13/// An <see cref="IModelBinder"/> for <see cref="double"/> and <see cref="Nullable{T}"/> where <c>T</c> is
ModelBinding\Binders\EnumTypeModelBinder.cs (1)
12/// <see cref="IModelBinder"/> implementation to bind models for types deriving from <see cref="Enum"/>.
ModelBinding\Binders\EnumTypeModelBinderProvider.cs (1)
26public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\FloatingPointTypeModelBinderProvider.cs (1)
23public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\FloatModelBinder.cs (1)
13/// An <see cref="IModelBinder"/> for <see cref="float"/> and <see cref="Nullable{T}"/> where <c>T</c> is
ModelBinding\Binders\FormCollectionModelBinder.cs (1)
15/// <see cref="IModelBinder"/> implementation to bind form values to <see cref="IFormCollection"/>.
ModelBinding\Binders\FormCollectionModelBinderProvider.cs (1)
19public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\FormFileModelBinder.cs (1)
16/// <see cref="IModelBinder"/> implementation to bind posted files to <see cref="IFormFile"/>.
ModelBinding\Binders\FormFileModelBinderProvider.cs (1)
19public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\HeaderModelBinder.cs (4)
14/// An <see cref="IModelBinder"/> which binds models from the request headers when a model 34/// <param name="innerModelBinder">The <see cref="IModelBinder"/> which does the actual 36public HeaderModelBinder(ILoggerFactory loggerFactory, IModelBinder innerModelBinder) 46internal IModelBinder? InnerModelBinder { get; }
ModelBinding\Binders\HeaderModelBinderProvider.cs (2)
17public IModelBinder? GetBinder(ModelBinderProviderContext context) 46var innerModelBinder = context.CreateBinder(
ModelBinding\Binders\KeyValuePairModelBinder.cs (8)
11/// An <see cref="IModelBinder"/> for <see cref="KeyValuePair{TKey, TValue}"/>. 17private readonly IModelBinder _keyBinder; 18private readonly IModelBinder _valueBinder; 24/// <param name="keyBinder">The <see cref="IModelBinder"/> for <typeparamref name="TKey"/>.</param> 25/// <param name="valueBinder">The <see cref="IModelBinder"/> for <typeparamref name="TValue"/>.</param> 27public KeyValuePairModelBinder(IModelBinder keyBinder, IModelBinder valueBinder, ILoggerFactory loggerFactory) 92IModelBinder binder,
ModelBinding\Binders\KeyValuePairModelBinderProvider.cs (4)
17public IModelBinder? GetBinder(ModelBinderProviderContext context) 28var keyBinder = context.CreateBinder(keyMetadata); 31var valueBinder = context.CreateBinder(valueMetadata); 35return (IModelBinder)Activator.CreateInstance(binderType, keyBinder, valueBinder, loggerFactory)!;
ModelBinding\Binders\ServicesModelBinder.cs (1)
12/// An <see cref="IModelBinder"/> which binds models from the request services when a model
ModelBinding\Binders\ServicesModelBinderProvider.cs (1)
19public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\SimpleTypeModelBinder.cs (1)
13/// An <see cref="IModelBinder"/> for simple types.
ModelBinding\Binders\SimpleTypeModelBinderProvider.cs (1)
17public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\Binders\TryParseModelBinder.cs (1)
13/// An <see cref="IModelBinder"/> for simple types.
ModelBinding\Binders\TryParseModelBinderProvider.cs (1)
15public IModelBinder? GetBinder(ModelBinderProviderContext context)
ModelBinding\IModelBinderFactory.cs (4)
9/// A factory abstraction for creating <see cref="IModelBinder"/> instances. 14/// Creates a new <see cref="IModelBinder"/>. 17/// <returns>An <see cref="IModelBinder"/> instance.</returns> 18IModelBinder CreateBinder(ModelBinderFactoryContext context);
ModelBinding\Metadata\BindingMetadata.cs (4)
33/// Gets or sets the <see cref="Type"/> of the <see cref="IModelBinder"/> implementation used to bind the 37/// Also set <see cref="BindingSource"/> if the specified <see cref="IModelBinder"/> implementation does not 45if (value != null && !typeof(IModelBinder).IsAssignableFrom(value)) 50typeof(IModelBinder).FullName),
ModelBinding\ModelBinderFactory.cs (16)
20/// A factory for <see cref="IModelBinder"/> instances. 26private readonly ConcurrentDictionary<Key, IModelBinder> _cache; 43_cache = new ConcurrentDictionary<Key, IModelBinder>(); 51public IModelBinder CreateBinder(ModelBinderFactoryContext context) 63if (TryGetCachedBinder(context.Metadata, context.CacheToken, out var binder)) 87private IModelBinder CreateBinderCoreCached(DefaultModelBinderProviderContext providerContext, object? token) 89if (TryGetCachedBinder(providerContext.Metadata, token, out var binder)) 106private IModelBinder? CreateBinderCoreUncached(DefaultModelBinderProviderContext providerContext, object? token) 127if (visited.TryGetValue(key, out var binder)) 146IModelBinder? result = null; 174private void AddToCache(ModelMetadata metadata, object? cacheToken, IModelBinder binder) 187private bool TryGetCachedBinder(ModelMetadata metadata, object? cacheToken, [NotNullWhen(true)] out IModelBinder? binder) 224Visited = new Dictionary<Key, IModelBinder?>(); 246public Dictionary<Key, IModelBinder?> Visited { get; } 250public override IModelBinder CreateBinder(ModelMetadata metadata) 258public override IModelBinder CreateBinder(ModelMetadata metadata, BindingInfo bindingInfo)
ModelBinding\ModelBinderFactoryContext.cs (1)
24/// Gets or sets the cache token. If <c>non-null</c> the resulting <see cref="IModelBinder"/>
ModelBinding\ModelBindingHelper.cs (1)
267var binder = modelBinderFactory.CreateBinder(factoryContext);
ModelBinding\NoOpBinder.cs (1)
10public static readonly IModelBinder Instance = new NoOpBinder();
ModelBinding\ParameterBinder.cs (4)
58/// <param name="modelBinder">The <see cref="IModelBinder"/>.</param> 66IModelBinder modelBinder, 77/// <param name="modelBinder">The <see cref="IModelBinder"/>.</param> 86IModelBinder modelBinder,
ModelBinding\PlaceholderBinder.cs (1)
16public IModelBinder? Inner { get; set; }
MvcOptions.cs (1)
327/// this number of <see cref="IModelBinder"/>s are on the stack. That is, an attempt to recurse beyond this
Microsoft.AspNetCore.Mvc.RazorPages (4)
Infrastructure\PageBinderFactory.cs (4)
34var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext 115var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext 165public BinderItem(IModelBinder modelBinder, ModelMetadata modelMetadata) 173public IModelBinder ModelBinder { get; }