1 namespace System.Web.Mvc {
2 public class ModelMetadataProviders {
3 private ModelMetadataProvider _currentProvider;
4 private static ModelMetadataProviders _instance = new ModelMetadataProviders();
5 private IResolver<ModelMetadataProvider> _resolver;
7 internal ModelMetadataProviders(IResolver<ModelMetadataProvider> resolver = null) {
8 _resolver = resolver ?? new SingleServiceResolver<ModelMetadataProvider>(
9 () => _currentProvider,
10 new DataAnnotationsModelMetadataProvider(),
11 "ModelMetadataProviders.Current"
15 public static ModelMetadataProvider Current {
17 return _instance.CurrentInternal;
20 _instance.CurrentInternal = value;
24 internal ModelMetadataProvider CurrentInternal {
26 return _resolver.Current;
29 _currentProvider = value ?? new EmptyModelMetadataProvider();