// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.ModelBinding; namespace Microsoft.AspNetCore.Mvc.Internal { // 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. public class PlaceholderBinder : IModelBinder { public IModelBinder Inner { get; set; } public Task BindModelAsync(ModelBindingContext bindingContext) { return Inner.BindModelAsync(bindingContext); } } }