1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
namespace System.Web.Mvc {
public class ModelMetadataProviders {
private ModelMetadataProvider _currentProvider;
private static ModelMetadataProviders _instance = new ModelMetadataProviders();
private IResolver<ModelMetadataProvider> _resolver;
internal ModelMetadataProviders(IResolver<ModelMetadataProvider> resolver = null) {
_resolver = resolver ?? new SingleServiceResolver<ModelMetadataProvider>(
() => _currentProvider,
new DataAnnotationsModelMetadataProvider(),
"ModelMetadataProviders.Current"
);
}
public static ModelMetadataProvider Current {
get {
return _instance.CurrentInternal;
}
set {
_instance.CurrentInternal = value;
}
}
internal ModelMetadataProvider CurrentInternal {
get {
return _resolver.Current;
}
set {
_currentProvider = value ?? new EmptyModelMetadataProvider();
}
}
}
}
|