// Copyright (c) Microsoft Open Technologies, Inc. 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; namespace Microsoft.AspNet.Mvc.ModelBinding { /// /// A value provider which can filter /// based on . /// /// /// Represents a type implementing /// public abstract class MetadataAwareValueProvider : IMetadataAwareValueProvider where TBinderMetadata : IValueProviderMetadata { public abstract Task ContainsPrefixAsync(string prefix); public abstract Task GetValueAsync(string key); public virtual IValueProvider Filter(IValueProviderMetadata valueBinderMetadata) { if (valueBinderMetadata is TBinderMetadata) { return this; } return null; } } }