1 namespace System.Web.Mvc {
3 using System.Collections.Generic;
4 using System.Collections.ObjectModel;
7 public class ModelValidatorProviderCollection : Collection<ModelValidatorProvider> {
8 private IResolver<IEnumerable<ModelValidatorProvider>> _serviceResolver;
10 public ModelValidatorProviderCollection() {
11 _serviceResolver = new MultiServiceResolver<ModelValidatorProvider>(() => Items);
14 public ModelValidatorProviderCollection(IList<ModelValidatorProvider> list)
16 _serviceResolver = new MultiServiceResolver<ModelValidatorProvider>(() => Items);
19 internal ModelValidatorProviderCollection(IResolver<IEnumerable<ModelValidatorProvider>> serviceResolver, params ModelValidatorProvider[] validatorProvidors)
20 : base(validatorProvidors) {
21 _serviceResolver = serviceResolver ?? new MultiServiceResolver<ModelValidatorProvider>(
26 private IEnumerable<ModelValidatorProvider> CombinedItems {
28 return _serviceResolver.Current;
32 protected override void InsertItem(int index, ModelValidatorProvider item) {
34 throw new ArgumentNullException("item");
36 base.InsertItem(index, item);
39 protected override void SetItem(int index, ModelValidatorProvider item) {
41 throw new ArgumentNullException("item");
43 base.SetItem(index, item);
46 public IEnumerable<ModelValidator> GetValidators(ModelMetadata metadata, ControllerContext context) {
47 return CombinedItems.SelectMany(provider => provider.GetValidators(metadata, context));