| File: ModelBinding\PlaceholderBinder.cs | Web Access |
| Project: src\aspnetcore\src\Mvc\Mvc.Core\src\Microsoft.AspNetCore.Mvc.Core.csproj (Microsoft.AspNetCore.Mvc.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable enable using System.Diagnostics; namespace Microsoft.AspNetCore.Mvc.ModelBinding; // Used as a placeholder to break cycles while building a tree of model binders in ModelBinderFactory. // // When a cycle is detected by a call to Create(...), we create an instance of this class and return it // to break the cycle. Later when the 'real' binder is created we set Inner to point to that. internal sealed class PlaceholderBinder : IModelBinder { public IModelBinder? Inner { get; set; } public Task BindModelAsync(ModelBindingContext bindingContext) { Debug.Assert(Inner is not null, "Inner must be resolved before BindModelAsync can be called."); return Inner.BindModelAsync(bindingContext); } }