AssociatedMetadataProvider Class

 

Provides an abstract class to implement a metadata provider.

Namespace:   System.Web.Mvc
Assembly:  System.Web.Mvc (in System.Web.Mvc.dll)

Inheritance Hierarchy

System.Object
  System.Web.Mvc.ModelMetadataProvider
    System.Web.Mvc.AssociatedMetadataProvider
      System.Web.Mvc.CachedAssociatedMetadataProvider<TModelMetadata>
      System.Web.Mvc.DataAnnotationsModelMetadataProvider
      System.Web.Mvc.EmptyModelMetadataProvider

Syntax

public abstract class AssociatedMetadataProvider : ModelMetadataProvider
public ref class AssociatedMetadataProvider abstract : ModelMetadataProvider
[<AbstractClass>]
type AssociatedMetadataProvider = 
    class
        inherit ModelMetadataProvider
    end
Public MustInherit Class AssociatedMetadataProvider
    Inherits ModelMetadataProvider

Constructors

Name Description
System_CAPS_protmethod AssociatedMetadataProvider()

Called from constructors in a derived class to initialize the AssociatedMetadataProvider class.

Methods

Name Description
System_CAPS_protmethod CreateMetadata(IEnumerable<Attribute>, Type, Func<Object>, Type, String)

When overridden in a derived class, creates the model metadata for the property.

System_CAPS_pubmethod Equals(Object)

(Inherited from Object.)

System_CAPS_protmethod FilterAttributes(Type, PropertyDescriptor, IEnumerable<Attribute>)

Gets a list of attributes.

System_CAPS_protmethod Finalize()

(Inherited from Object.)

System_CAPS_pubmethod GetHashCode()

(Inherited from Object.)

System_CAPS_pubmethod GetMetadataForProperties(Object, Type)

Returns a list of properties for the model.(Overrides ModelMetadataProvider.GetMetadataForProperties(Object, Type).)

System_CAPS_protmethod GetMetadataForProperty(Func<Object>, Type, PropertyDescriptor)

Returns the metadata for the specified property using the container type and property descriptor.

System_CAPS_pubmethod GetMetadataForProperty(Func<Object>, Type, String)

Returns the metadata for the specified property using the container type and property name.(Overrides ModelMetadataProvider.GetMetadataForProperty(Func<Object>, Type, String).)

System_CAPS_pubmethod GetMetadataForType(Func<Object>, Type)

Returns the metadata for the specified property using the type of the model.(Overrides ModelMetadataProvider.GetMetadataForType(Func<Object>, Type).)

System_CAPS_pubmethod GetType()

(Inherited from Object.)

System_CAPS_protmethod GetTypeDescriptor(Type)

Returns the type descriptor from the specified type.

System_CAPS_protmethod MemberwiseClone()

(Inherited from Object.)

System_CAPS_pubmethod ToString()

(Inherited from Object.)

Remarks

A metadata provider provides metadata for the model within a view. Metadata providers must derive from ModelMetadataProvider. You can inherit from this class if you want to use a custom validator or a third-party validator that uses attribute-based metadata.

This class implements the abstract methods of ModelMetadataProvider and contains only one additional abstract method. When you implement this class, use the AssociatedValidatorProvider class to implement the validator.

Model provider classes and validator provider classes are loosely coupled. Therefore, they work independently, and have no dependencies on each other.

However, the metadata provider exposes metadata that can be accessed and used by validation providers. For example, the MVC default metadata provider (the DataAnnotationsModelMetadataProvider class) reads the display name of an object, and the display name is used by the DataAnnotationsModelValidatorProvider validation provider when it creates a validation error message.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

System.Web.Mvc Namespace

Return to top