-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathAssociatedMetadataProvider.xml
278 lines (267 loc) · 21.8 KB
/
AssociatedMetadataProvider.xml
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
<Type Name="AssociatedMetadataProvider" FullName="System.Web.ModelBinding.AssociatedMetadataProvider">
<TypeSignature Language="C#" Value="public abstract class AssociatedMetadataProvider : System.Web.ModelBinding.ModelMetadataProvider" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit AssociatedMetadataProvider extends System.Web.ModelBinding.ModelMetadataProvider" />
<TypeSignature Language="DocId" Value="T:System.Web.ModelBinding.AssociatedMetadataProvider" />
<TypeSignature Language="VB.NET" Value="Public MustInherit Class AssociatedMetadataProvider
Inherits ModelMetadataProvider" />
<TypeSignature Language="F#" Value="type AssociatedMetadataProvider = class
 inherit ModelMetadataProvider" />
<TypeSignature Language="C++ CLI" Value="public ref class AssociatedMetadataProvider abstract : System::Web::ModelBinding::ModelMetadataProvider" />
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Web.ModelBinding.ModelMetadataProvider</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provides an abstract class to implement a metadata provider.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
A metadata provider provides metadata for a model. Metadata providers must derive from <xref:System.Web.ModelBinding.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 the <xref:System.Web.ModelBinding.ModelMetadataProvider> class and contains additional abstract methods. When you implement this class, use the <xref:System.Web.ModelBinding.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 default metadata provider (the <xref:System.Web.ModelBinding.DataAnnotationsModelMetadataProvider> class) reads the display name of an object. This display name is used by the <xref:System.Web.ModelBinding.DataAnnotationsModelValidatorProvider> validation provider when it creates a validation error message.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected AssociatedMetadataProvider ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.#ctor" />
<MemberSignature Language="VB.NET" Value="Protected Sub New ()" />
<MemberSignature Language="C++ CLI" Value="protected:
 AssociatedMetadataProvider();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>When overridden in a derived class, initializes a new instance of the class that derives from the <see cref="T:System.Web.ModelBinding.AssociatedMetadataProvider" /> class.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="CreateMetadata">
<MemberSignature Language="C#" Value="protected abstract System.Web.ModelBinding.ModelMetadata CreateMetadata (System.Collections.Generic.IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance class System.Web.ModelBinding.ModelMetadata CreateMetadata(class System.Collections.Generic.IEnumerable`1<class System.Attribute> attributes, class System.Type containerType, class System.Func`1<object> modelAccessor, class System.Type modelType, string propertyName) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.CreateMetadata(System.Collections.Generic.IEnumerable{System.Attribute},System.Type,System.Func{System.Object},System.Type,System.String)" />
<MemberSignature Language="VB.NET" Value="Protected MustOverride Function CreateMetadata (attributes As IEnumerable(Of Attribute), containerType As Type, modelAccessor As Func(Of Object), modelType As Type, propertyName As String) As ModelMetadata" />
<MemberSignature Language="F#" Value="abstract member CreateMetadata : seq<Attribute> * Type * Func<obj> * Type * string -> System.Web.ModelBinding.ModelMetadata" Usage="associatedMetadataProvider.CreateMetadata (attributes, containerType, modelAccessor, modelType, propertyName)" />
<MemberSignature Language="C++ CLI" Value="protected:
 abstract System::Web::ModelBinding::ModelMetadata ^ CreateMetadata(System::Collections::Generic::IEnumerable<Attribute ^> ^ attributes, Type ^ containerType, Func<System::Object ^> ^ modelAccessor, Type ^ modelType, System::String ^ propertyName);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Web.ModelBinding.ModelMetadata</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="attributes" Type="System.Collections.Generic.IEnumerable<System.Attribute>" />
<Parameter Name="containerType" Type="System.Type" />
<Parameter Name="modelAccessor" Type="System.Func<System.Object>" />
<Parameter Name="modelType" Type="System.Type" />
<Parameter Name="propertyName" Type="System.String" />
</Parameters>
<Docs>
<param name="attributes">The attributes.</param>
<param name="containerType">The type of the container, or <see langword="null" /> if there is no container.</param>
<param name="modelAccessor">The model accessor.</param>
<param name="modelType">The type of the model.</param>
<param name="propertyName">The name of the property, or <see langword="null" /> if the model is not a property.</param>
<summary>When overridden in a derived class, creates metadata for a model.</summary>
<returns>Metadata for a model.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="FilterAttributes">
<MemberSignature Language="C#" Value="protected virtual System.Collections.Generic.IEnumerable<Attribute> FilterAttributes (Type containerType, System.ComponentModel.PropertyDescriptor propertyDescriptor, System.Collections.Generic.IEnumerable<Attribute> attributes);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1<class System.Attribute> FilterAttributes(class System.Type containerType, class System.ComponentModel.PropertyDescriptor propertyDescriptor, class System.Collections.Generic.IEnumerable`1<class System.Attribute> attributes) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.FilterAttributes(System.Type,System.ComponentModel.PropertyDescriptor,System.Collections.Generic.IEnumerable{System.Attribute})" />
<MemberSignature Language="VB.NET" Value="Protected Overridable Function FilterAttributes (containerType As Type, propertyDescriptor As PropertyDescriptor, attributes As IEnumerable(Of Attribute)) As IEnumerable(Of Attribute)" />
<MemberSignature Language="F#" Value="abstract member FilterAttributes : Type * System.ComponentModel.PropertyDescriptor * seq<Attribute> -> seq<Attribute>
override this.FilterAttributes : Type * System.ComponentModel.PropertyDescriptor * seq<Attribute> -> seq<Attribute>" Usage="associatedMetadataProvider.FilterAttributes (containerType, propertyDescriptor, attributes)" />
<MemberSignature Language="C++ CLI" Value="protected:
 virtual System::Collections::Generic::IEnumerable<Attribute ^> ^ FilterAttributes(Type ^ containerType, System::ComponentModel::PropertyDescriptor ^ propertyDescriptor, System::Collections::Generic::IEnumerable<Attribute ^> ^ attributes);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable<System.Attribute></ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="containerType" Type="System.Type" />
<Parameter Name="propertyDescriptor" Type="System.ComponentModel.PropertyDescriptor" />
<Parameter Name="attributes" Type="System.Collections.Generic.IEnumerable<System.Attribute>" />
</Parameters>
<Docs>
<param name="containerType">The type of the container.</param>
<param name="propertyDescriptor">The property descriptor.</param>
<param name="attributes">The attributes.</param>
<summary>Enables derived classes to filter the list of attributes.</summary>
<returns>A list of attributes.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The code in the <xref:System.Web.ModelBinding.AssociatedMetadataProvider> base class returns all attributes. This method lets derived classes filter the attributes.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="GetMetadataForProperties">
<MemberSignature Language="C#" Value="public override System.Collections.Generic.IEnumerable<System.Web.ModelBinding.ModelMetadata> GetMetadataForProperties (object container, Type containerType);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Collections.Generic.IEnumerable`1<class System.Web.ModelBinding.ModelMetadata> GetMetadataForProperties(object container, class System.Type containerType) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.GetMetadataForProperties(System.Object,System.Type)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function GetMetadataForProperties (container As Object, containerType As Type) As IEnumerable(Of ModelMetadata)" />
<MemberSignature Language="F#" Value="override this.GetMetadataForProperties : obj * Type -> seq<System.Web.ModelBinding.ModelMetadata>" Usage="associatedMetadataProvider.GetMetadataForProperties (container, containerType)" />
<MemberSignature Language="C++ CLI" Value="public:
 override System::Collections::Generic::IEnumerable<System::Web::ModelBinding::ModelMetadata ^> ^ GetMetadataForProperties(System::Object ^ container, Type ^ containerType);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable<System.Web.ModelBinding.ModelMetadata></ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="container" Type="System.Object" />
<Parameter Name="containerType" Type="System.Type" />
</Parameters>
<Docs>
<param name="container">The container.</param>
<param name="containerType">The type of the container.</param>
<summary>When overridden in a derived class, returns metadata for all properties.</summary>
<returns>Metadata for all properties.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">The <paramref name="containerType" /> parameter is <see langword="null" />.</exception>
</Docs>
</Member>
<MemberGroup MemberName="GetMetadataForProperty">
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>When overridden in a derived class, returns metadata for a specified property.</summary>
</Docs>
</MemberGroup>
<Member MemberName="GetMetadataForProperty">
<MemberSignature Language="C#" Value="protected virtual System.Web.ModelBinding.ModelMetadata GetMetadataForProperty (Func<object> modelAccessor, Type containerType, System.ComponentModel.PropertyDescriptor propertyDescriptor);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance class System.Web.ModelBinding.ModelMetadata GetMetadataForProperty(class System.Func`1<object> modelAccessor, class System.Type containerType, class System.ComponentModel.PropertyDescriptor propertyDescriptor) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.GetMetadataForProperty(System.Func{System.Object},System.Type,System.ComponentModel.PropertyDescriptor)" />
<MemberSignature Language="VB.NET" Value="Protected Overridable Function GetMetadataForProperty (modelAccessor As Func(Of Object), containerType As Type, propertyDescriptor As PropertyDescriptor) As ModelMetadata" />
<MemberSignature Language="F#" Value="override this.GetMetadataForProperty : Func<obj> * Type * System.ComponentModel.PropertyDescriptor -> System.Web.ModelBinding.ModelMetadata" Usage="associatedMetadataProvider.GetMetadataForProperty (modelAccessor, containerType, propertyDescriptor)" />
<MemberSignature Language="C++ CLI" Value="protected:
 virtual System::Web::ModelBinding::ModelMetadata ^ GetMetadataForProperty(Func<System::Object ^> ^ modelAccessor, Type ^ containerType, System::ComponentModel::PropertyDescriptor ^ propertyDescriptor);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Web.ModelBinding.ModelMetadata</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="modelAccessor" Type="System.Func<System.Object>" />
<Parameter Name="containerType" Type="System.Type" />
<Parameter Name="propertyDescriptor" Type="System.ComponentModel.PropertyDescriptor" />
</Parameters>
<Docs>
<param name="modelAccessor">The model accessor.</param>
<param name="containerType">The type of the container.</param>
<param name="propertyDescriptor">The property descriptor.</param>
<summary>When overridden in a derived class, returns metadata for a property specified by a property descriptor object.</summary>
<returns>Metadata for the specified property.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="GetMetadataForProperty">
<MemberSignature Language="C#" Value="public override System.Web.ModelBinding.ModelMetadata GetMetadataForProperty (Func<object> modelAccessor, Type containerType, string propertyName);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Web.ModelBinding.ModelMetadata GetMetadataForProperty(class System.Func`1<object> modelAccessor, class System.Type containerType, string propertyName) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.GetMetadataForProperty(System.Func{System.Object},System.Type,System.String)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function GetMetadataForProperty (modelAccessor As Func(Of Object), containerType As Type, propertyName As String) As ModelMetadata" />
<MemberSignature Language="F#" Value="override this.GetMetadataForProperty : Func<obj> * Type * string -> System.Web.ModelBinding.ModelMetadata" Usage="associatedMetadataProvider.GetMetadataForProperty (modelAccessor, containerType, propertyName)" />
<MemberSignature Language="C++ CLI" Value="public:
 override System::Web::ModelBinding::ModelMetadata ^ GetMetadataForProperty(Func<System::Object ^> ^ modelAccessor, Type ^ containerType, System::String ^ propertyName);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Web.ModelBinding.ModelMetadata</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="modelAccessor" Type="System.Func<System.Object>" />
<Parameter Name="containerType" Type="System.Type" />
<Parameter Name="propertyName" Type="System.String" />
</Parameters>
<Docs>
<param name="modelAccessor">The model accessor.</param>
<param name="containerType">The type of the container.</param>
<param name="propertyName">The name of the property.</param>
<summary>When overridden in a derived class, returns metadata for a property specified by a property name.</summary>
<returns>Metadata for the specified property.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">The <paramref name="containerType" /> parameter is <see langword="null" />.
-or-
The <paramref name="propertyName" /> parameter is <see langword="null" /> or empty.
-or-
A property that has the name specified by <paramref name="propertyName" /> cannot be found in the <paramref name="containerType" /> type.</exception>
</Docs>
</Member>
<Member MemberName="GetMetadataForType">
<MemberSignature Language="C#" Value="public override System.Web.ModelBinding.ModelMetadata GetMetadataForType (Func<object> modelAccessor, Type modelType);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Web.ModelBinding.ModelMetadata GetMetadataForType(class System.Func`1<object> modelAccessor, class System.Type modelType) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.GetMetadataForType(System.Func{System.Object},System.Type)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function GetMetadataForType (modelAccessor As Func(Of Object), modelType As Type) As ModelMetadata" />
<MemberSignature Language="F#" Value="override this.GetMetadataForType : Func<obj> * Type -> System.Web.ModelBinding.ModelMetadata" Usage="associatedMetadataProvider.GetMetadataForType (modelAccessor, modelType)" />
<MemberSignature Language="C++ CLI" Value="public:
 override System::Web::ModelBinding::ModelMetadata ^ GetMetadataForType(Func<System::Object ^> ^ modelAccessor, Type ^ modelType);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Web.ModelBinding.ModelMetadata</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="modelAccessor" Type="System.Func<System.Object>" />
<Parameter Name="modelType" Type="System.Type" />
</Parameters>
<Docs>
<param name="modelAccessor">The model accessor.</param>
<param name="modelType">The type of the model.</param>
<summary>When overridden in a derived class, returns metadata for the model type.</summary>
<returns>Metadata for the model type.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">The <paramref name="modelType" /> parameter is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="GetTypeDescriptor">
<MemberSignature Language="C#" Value="protected virtual System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor (Type type);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance class System.ComponentModel.ICustomTypeDescriptor GetTypeDescriptor(class System.Type type) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Web.ModelBinding.AssociatedMetadataProvider.GetTypeDescriptor(System.Type)" />
<MemberSignature Language="VB.NET" Value="Protected Overridable Function GetTypeDescriptor (type As Type) As ICustomTypeDescriptor" />
<MemberSignature Language="F#" Value="abstract member GetTypeDescriptor : Type -> System.ComponentModel.ICustomTypeDescriptor
override this.GetTypeDescriptor : Type -> System.ComponentModel.ICustomTypeDescriptor" Usage="associatedMetadataProvider.GetTypeDescriptor type" />
<MemberSignature Language="C++ CLI" Value="protected:
 virtual System::ComponentModel::ICustomTypeDescriptor ^ GetTypeDescriptor(Type ^ type);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Web</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ComponentModel.ICustomTypeDescriptor</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="type" Type="System.Type" />
</Parameters>
<Docs>
<param name="type">The type.</param>
<summary>When overridden in a derived class, returns a descriptor object for a specified type.</summary>
<returns>The type descriptor object.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>