Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 1.7k
Expand file tree
/
Copy pathCustomReflectionContext.xml
More file actions
Latest commit
418 lines (408 loc) · 33.9 KB
/
Copy pathCustomReflectionContext.xml
File metadata and controls
418 lines (408 loc) · 33.9 KB
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
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
<TypeName="CustomReflectionContext"FullName="System.Reflection.Context.CustomReflectionContext">
<TypeSignatureLanguage="C#"Value="public abstract class CustomReflectionContext : System.Reflection.ReflectionContext" />
<TypeSignatureLanguage="ILAsm"Value=".class public auto ansi abstract beforefieldinit CustomReflectionContext extends System.Reflection.ReflectionContext" />
<TypeSignatureLanguage="DocId"Value="T:System.Reflection.Context.CustomReflectionContext" />
<TypeSignatureLanguage="VB.NET"Value="Public MustInherit Class CustomReflectionContext
Inherits ReflectionContext" />
<TypeSignatureLanguage="F#"Value="type CustomReflectionContext = class
 inherit ReflectionContext" />
<TypeSignatureLanguage="C++ CLI"Value="public ref class CustomReflectionContext abstract : System::Reflection::ReflectionContext" />
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.1</AssemblyVersion>
<AssemblyVersion>9.0.0.2</AssemblyVersion>
<AssemblyVersion>10.0.0.0</AssemblyVersion>
<AssemblyVersion>10.0.0.1</AssemblyVersion>
<AssemblyVersion>10.0.0.2</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Reflection.ReflectionContext</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(0)]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(0)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Represents a customizable reflection context.</summary>
<remarks>
<formattype="text/markdown"><![CDATA[
<xref:System.Reflection.Context.CustomReflectionContext> provides a way for you to add or remove custom attributes from reflection objects, or add dummy properties to those objects, without re-implementing the complete reflection model. The default <xref:System.Reflection.Context.CustomReflectionContext> simply wraps reflection objects without making any changes, but by subclassing and overriding the relevant methods, you can add, remove, or change the attributes that apply to any reflected parameter or member, or add new properties to a reflected type.
For example, suppose that your code follows the convention of applying a particular attribute to factory methods, but you're now required to work with third-party
code that lacks attributes. You can use <xref:System.Reflection.Context.CustomReflectionContext> to specify a rule for identifying the objects that should have attributes
and to supply the objects with those attributes when they're viewed from your code.
To use <xref:System.Reflection.Context.CustomReflectionContext> effectively, the code that uses the reflected objects must support the notion of specifying
a reflection context, instead of assuming that all reflected objects are associated with the runtime reflection context. Many reflection methods in .NET provide
a <xref:System.Reflection.ReflectionContext> parameter for this purpose.
To modify the attributes that are applied to a reflected parameter or member, override the
<xref:System.Reflection.Context.CustomReflectionContext.GetCustomAttributes(System.Reflection.ParameterInfo,System.Collections.Generic.IEnumerable{System.Object})>
or <xref:System.Reflection.Context.CustomReflectionContext.GetCustomAttributes(System.Reflection.MemberInfo,System.Collections.Generic.IEnumerable{System.Object})> method.
These methods take the reflected object and the list of attributes under its current reflection context, and return the list of attributes it should have under
the custom reflection context.
> [!WARNING]
> <xref:System.Reflection.Context.CustomReflectionContext> overrides should not query attributes on the provided <xref:System.Reflection.MemberInfo> or <xref:System.Reflection.ParameterInfo>
> by calling <xref:System.Reflection.CustomAttributeExtensions.GetCustomAttributes*>; use the `declaredAttributes` sequence passed to the <xref:System.Reflection.Context.CustomReflectionContext.GetCustomAttributes*> overloads instead.
To add properties to a reflected type, override the <xref:System.Reflection.Context.CustomReflectionContext.AddProperties*> method. The method accepts a parameter that
specifies the reflected type, and returns a list of additional properties. You should use the <xref:System.Reflection.Context.CustomReflectionContext.CreateProperty*>
method to create property objects to return. You can specify delegates when creating the property that serve as the property accessor, and you can omit one of
the accessors to create a read-only or write-only property. Note that such dummy properties have no metadata or Common Intermediate Language (CIL) backing.
> [!WARNING]
> - Be cautious about equality among reflected objects when you work with reflection contexts, because objects might represent the same reflected object in multiple
> contexts. You can use the <xref:System.Reflection.Context.CustomReflectionContext.MapType*> method to obtain a particular reflection context's version of a reflected object.
> - A <xref:System.Reflection.Context.CustomReflectionContext> object alters the attributes returned by a particular reflection object, such as those obtained by the
> <xref:System.Reflection.MemberInfo.GetCustomAttributes*> method. It doesn't alter the custom attribute data returned by the <xref:System.Reflection.MemberInfo.GetCustomAttributesData*>
> method, and these two lists won't match when you use a custom reflection context.
The following example demonstrates how to subclass <xref:System.Reflection.Context.CustomReflectionContext> to add a custom attribute to all the members of a given type whose names begin with "To".
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Context/CustomReflectionContext/CustomReflectionContext.Examples.cs" id="Snippet1":::
:::code language="csharp" source="~/snippets/csharp/System.Reflection.Context/CustomReflectionContext/CustomReflectionContext.Examples.cs" id="Snippet2":::
]]></format>
</remarks>
</Docs>
<Members>
<MemberGroupMemberName=".ctor">
<Docs>
<summary>Initializes a new instance of the <seecref="T:System.Reflection.Context.CustomReflectionContext" /> class.</summary>
</Docs>
</MemberGroup>
<MemberMemberName=".ctor">
<MemberSignatureLanguage="C#"Value="protected CustomReflectionContext ();" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.#ctor" />
<MemberSignatureLanguage="VB.NET"Value="Protected Sub New ()" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 CustomReflectionContext();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>
Initializes a new instance of the <seecref="T:System.Reflection.Context.CustomReflectionContext" /> class.
</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<MemberMemberName=".ctor">
<MemberSignatureLanguage="C#"Value="protected CustomReflectionContext (System.Reflection.ReflectionContext source);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig specialname rtspecialname instance void .ctor(class System.Reflection.ReflectionContext source) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.#ctor(System.Reflection.ReflectionContext)" />
<MemberSignatureLanguage="VB.NET"Value="Protected Sub New (source As ReflectionContext)" />
<MemberSignatureLanguage="F#"Value="new System.Reflection.Context.CustomReflectionContext : System.Reflection.ReflectionContext -> System.Reflection.Context.CustomReflectionContext"Usage="new System.Reflection.Context.CustomReflectionContext source" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 CustomReflectionContext(System::Reflection::ReflectionContext ^ source);" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<ParameterName="source"Type="System.Reflection.ReflectionContext" />
</Parameters>
<Docs>
<paramname="source">The reflection context to use as a base.</param>
<summary>
Initializes a new instance of the <seecref="T:System.Reflection.Context.CustomReflectionContext" /> class with the specified reflection context as a base.
</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<MemberMemberName="AddProperties">
<MemberSignatureLanguage="C#"Value="protected virtual System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo> AddProperties (Type type);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1<class System.Reflection.PropertyInfo> AddProperties(class System.Type type) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" />
<MemberSignatureLanguage="VB.NET"Value="Protected Iterator Overridable Function AddProperties (type As Type) As IEnumerable(Of PropertyInfo)"FrameworkAlternate="net-10.0-pp;net-11.0-pp;netstandard-2.1-pp" />
<MemberSignatureLanguage="F#"Value="abstract member AddProperties : Type -> seq<System.Reflection.PropertyInfo>
override this.AddProperties : Type -> seq<System.Reflection.PropertyInfo>"Usage="customReflectionContext.AddProperties type" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 virtual System::Collections::Generic::IEnumerable<System::Reflection::PropertyInfo ^> ^ AddProperties(Type ^ type);" />
<MemberSignatureLanguage="VB.NET"Value="Protected Overridable Function AddProperties (type As Type) As IEnumerable(Of PropertyInfo)"FrameworkAlternate="netstandard-2.0-pp" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp;netstandard-2.1-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.IteratorStateMachine(typeof(System.Reflection.Context.CustomReflectionContext+<AddProperties>d__7))]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.IteratorStateMachine(typeof(System.Reflection.Context.CustomReflectionContext+<AddProperties>d__7))>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable<System.Reflection.PropertyInfo></ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="type"Type="System.Type" />
</Parameters>
<Docs>
<paramname="type">The type to add properties to.</param>
<summary>
When overridden in a derived class, provides a collection of additional properties for the specified type, as represented in this reflection context.
</summary>
<returns>A collection of additional properties for the specified type.</returns>
<remarks>
Override this method to specify which properties should be added to a given type. To create the properties, use the <seecref="M:System.Reflection.Context.CustomReflectionContext.CreateProperty(System.Type,System.String,System.Func{System.Object,System.Object},System.Action{System.Object,System.Object})" /> method.
</remarks>
</Docs>
</Member>
<MemberGroupMemberName="CreateProperty">
<Docs>
<summary>Creates an object that represents a property to be added to a type, as specified by the <seecref="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" /> method.</summary>
</Docs>
</MemberGroup>
<MemberMemberName="CreateProperty">
<MemberSignatureLanguage="C#"Value="protected System.Reflection.PropertyInfo CreateProperty (Type propertyType, string name, Func<object,object?>? getter, Action<object,object?>? setter);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig instance class System.Reflection.PropertyInfo CreateProperty(class System.Type propertyType, string name, class System.Func`2<object, object> getter, class System.Action`2<object, object> setter) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.CreateProperty(System.Type,System.String,System.Func{System.Object,System.Object},System.Action{System.Object,System.Object})" />
<MemberSignatureLanguage="VB.NET"Value="Protected Function CreateProperty (propertyType As Type, name As String, getter As Func(Of Object, Object), setter As Action(Of Object, Object)) As PropertyInfo" />
<MemberSignatureLanguage="F#"Value="member this.CreateProperty : Type * string * Func<obj, obj> * Action<obj, obj> -> System.Reflection.PropertyInfo"Usage="customReflectionContext.CreateProperty (propertyType, name, getter, setter)" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 System::Reflection::PropertyInfo ^ CreateProperty(Type ^ propertyType, System::String ^ name, Func<System::Object ^, System::Object ^> ^ getter, Action<System::Object ^, System::Object ^> ^ setter);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PropertyInfo</ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="propertyType"Type="System.Type" />
<ParameterName="name"Type="System.String" />
<ParameterName="getter"Type="System.Func<System.Object,System.Object>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<ParameterName="setter"Type="System.Action<System.Object,System.Object>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<paramname="propertyType">The type of the property to create.</param>
<paramname="name">The name of the property to create.</param>
<paramname="getter">A delegate that represents the property's <seelangword="get" /> accessor.</param>
<paramname="setter">A delegate that represents the property's <seelangword="set" /> accessor.</param>
<summary>
Creates an object that represents a property to be added to a type, to be used with the <seecref="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" /> method.
</summary>
<returns>An object that represents the property.</returns>
<remarks>
Objects that are returned by this method are not complete <seecref="T:System.Reflection.PropertyInfo" /> objects, and should be used only in the context of the <seecref="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" /> method.
</remarks>
</Docs>
</Member>
<MemberMemberName="CreateProperty">
<MemberSignatureLanguage="C#"Value="protected System.Reflection.PropertyInfo CreateProperty (Type propertyType, string name, Func<object,object?>? getter, Action<object,object?>? setter, System.Collections.Generic.IEnumerable<Attribute>? propertyCustomAttributes, System.Collections.Generic.IEnumerable<Attribute>? getterCustomAttributes, System.Collections.Generic.IEnumerable<Attribute>? setterCustomAttributes);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig instance class System.Reflection.PropertyInfo CreateProperty(class System.Type propertyType, string name, class System.Func`2<object, object> getter, class System.Action`2<object, object> setter, class System.Collections.Generic.IEnumerable`1<class System.Attribute> propertyCustomAttributes, class System.Collections.Generic.IEnumerable`1<class System.Attribute> getterCustomAttributes, class System.Collections.Generic.IEnumerable`1<class System.Attribute> setterCustomAttributes) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.CreateProperty(System.Type,System.String,System.Func{System.Object,System.Object},System.Action{System.Object,System.Object},System.Collections.Generic.IEnumerable{System.Attribute},System.Collections.Generic.IEnumerable{System.Attribute},System.Collections.Generic.IEnumerable{System.Attribute})" />
<MemberSignatureLanguage="VB.NET"Value="Protected Function CreateProperty (propertyType As Type, name As String, getter As Func(Of Object, Object), setter As Action(Of Object, Object), propertyCustomAttributes As IEnumerable(Of Attribute), getterCustomAttributes As IEnumerable(Of Attribute), setterCustomAttributes As IEnumerable(Of Attribute)) As PropertyInfo" />
<MemberSignatureLanguage="F#"Value="member this.CreateProperty : Type * string * Func<obj, obj> * Action<obj, obj> * seq<Attribute> * seq<Attribute> * seq<Attribute> -> System.Reflection.PropertyInfo"Usage="customReflectionContext.CreateProperty (propertyType, name, getter, setter, propertyCustomAttributes, getterCustomAttributes, setterCustomAttributes)" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 System::Reflection::PropertyInfo ^ CreateProperty(Type ^ propertyType, System::String ^ name, Func<System::Object ^, System::Object ^> ^ getter, Action<System::Object ^, System::Object ^> ^ setter, System::Collections::Generic::IEnumerable<Attribute ^> ^ propertyCustomAttributes, System::Collections::Generic::IEnumerable<Attribute ^> ^ getterCustomAttributes, System::Collections::Generic::IEnumerable<Attribute ^> ^ setterCustomAttributes);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PropertyInfo</ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="propertyType"Type="System.Type" />
<ParameterName="name"Type="System.String" />
<ParameterName="getter"Type="System.Func<System.Object,System.Object>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<ParameterName="setter"Type="System.Action<System.Object,System.Object>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1, 2 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<ParameterName="propertyCustomAttributes"Type="System.Collections.Generic.IEnumerable<System.Attribute>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<ParameterName="getterCustomAttributes"Type="System.Collections.Generic.IEnumerable<System.Attribute>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<ParameterName="setterCustomAttributes"Type="System.Collections.Generic.IEnumerable<System.Attribute>">
<Attributes>
<AttributeFrameworkAlternate="net-10.0-pp;net-11.0-pp">
<AttributeNameLanguage="C#">[System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })]</AttributeName>
<AttributeNameLanguage="F#">[<System.Runtime.CompilerServices.Nullable(new System.Byte[] { 2, 1 })>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<paramname="propertyType">The type of the property to create.</param>
<paramname="name">The name of the property to create.</param>
<paramname="getter">A delegate that represents the property's <seelangword="get" /> accessor.</param>
<paramname="setter">A delegate that represents the property's <seelangword="set" /> accessor.</param>
<paramname="propertyCustomAttributes">A collection of custom attributes to apply to the property.</param>
<paramname="getterCustomAttributes">A collection of custom attributes to apply to the property's <seelangword="get" /> accessor.</param>
<paramname="setterCustomAttributes">A collection of custom attributes to apply to the property's <seelangword="set" /> accessor.</param>
<summary>
Creates an object that represents a property to be added to a type, to be used with the <seecref="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" /> method and using the specified custom attributes.
</summary>
<returns>An object that represents the property.</returns>
<remarks>
Objects that are returned by this method are not complete <seecref="T:System.Reflection.PropertyInfo" /> objects, and should be used only in the context of the <seecref="M:System.Reflection.Context.CustomReflectionContext.AddProperties(System.Type)" /> method.
</remarks>
</Docs>
</Member>
<MemberGroupMemberName="GetCustomAttributes">
<Docs>
<summary>When overridden in a derived class, provides a modified collection of custom attributes for the specified object, as represented in this reflection context.</summary>
</Docs>
</MemberGroup>
<MemberMemberName="GetCustomAttributes">
<MemberSignatureLanguage="C#"Value="protected virtual System.Collections.Generic.IEnumerable<object> GetCustomAttributes (System.Reflection.MemberInfo member, System.Collections.Generic.IEnumerable<object> declaredAttributes);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1<object> GetCustomAttributes(class System.Reflection.MemberInfo member, class System.Collections.Generic.IEnumerable`1<object> declaredAttributes) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.GetCustomAttributes(System.Reflection.MemberInfo,System.Collections.Generic.IEnumerable{System.Object})" />
<MemberSignatureLanguage="VB.NET"Value="Protected Overridable Function GetCustomAttributes (member As MemberInfo, declaredAttributes As IEnumerable(Of Object)) As IEnumerable(Of Object)" />
<MemberSignatureLanguage="F#"Value="abstract member GetCustomAttributes : System.Reflection.MemberInfo * seq<obj> -> seq<obj>
override this.GetCustomAttributes : System.Reflection.MemberInfo * seq<obj> -> seq<obj>"Usage="customReflectionContext.GetCustomAttributes (member, declaredAttributes)" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 virtual System::Collections::Generic::IEnumerable<System::Object ^> ^ GetCustomAttributes(System::Reflection::MemberInfo ^ member, System::Collections::Generic::IEnumerable<System::Object ^> ^ declaredAttributes);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable<System.Object></ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="member"Type="System.Reflection.MemberInfo" />
<ParameterName="declaredAttributes"Type="System.Collections.Generic.IEnumerable<System.Object>" />
</Parameters>
<Docs>
<paramname="member">The member whose custom attributes will be returned.</param>
<paramname="declaredAttributes">A collection of the member's attributes in its current context.</param>
<summary>
When overridden in a derived class, provides a list of custom attributes for the specified member, as represented in this reflection context.
</summary>
<returns>A collection that represents the custom attributes of the specified member in this reflection context.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<MemberMemberName="GetCustomAttributes">
<MemberSignatureLanguage="C#"Value="protected virtual System.Collections.Generic.IEnumerable<object> GetCustomAttributes (System.Reflection.ParameterInfo parameter, System.Collections.Generic.IEnumerable<object> declaredAttributes);" />
<MemberSignatureLanguage="ILAsm"Value=".method familyhidebysig newslot virtual instance class System.Collections.Generic.IEnumerable`1<object> GetCustomAttributes(class System.Reflection.ParameterInfo parameter, class System.Collections.Generic.IEnumerable`1<object> declaredAttributes) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.GetCustomAttributes(System.Reflection.ParameterInfo,System.Collections.Generic.IEnumerable{System.Object})" />
<MemberSignatureLanguage="VB.NET"Value="Protected Overridable Function GetCustomAttributes (parameter As ParameterInfo, declaredAttributes As IEnumerable(Of Object)) As IEnumerable(Of Object)" />
<MemberSignatureLanguage="F#"Value="abstract member GetCustomAttributes : System.Reflection.ParameterInfo * seq<obj> -> seq<obj>
override this.GetCustomAttributes : System.Reflection.ParameterInfo * seq<obj> -> seq<obj>"Usage="customReflectionContext.GetCustomAttributes (parameter, declaredAttributes)" />
<MemberSignatureLanguage="C++ CLI"Value="protected:
 virtual System::Collections::Generic::IEnumerable<System::Object ^> ^ GetCustomAttributes(System::Reflection::ParameterInfo ^ parameter, System::Collections::Generic::IEnumerable<System::Object ^> ^ declaredAttributes);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Generic.IEnumerable<System.Object></ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="parameter"Type="System.Reflection.ParameterInfo" />
<ParameterName="declaredAttributes"Type="System.Collections.Generic.IEnumerable<System.Object>" />
</Parameters>
<Docs>
<paramname="parameter">The parameter whose custom attributes will be returned.</param>
<paramname="declaredAttributes">A collection of the parameter's attributes in its current context.</param>
<summary>
When overridden in a derived class, provides a list of custom attributes for the specified parameter, as represented in this reflection context.
</summary>
<returns>A collection that represents the custom attributes of the specified parameter in this reflection context.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<MemberMemberName="MapAssembly">
<MemberSignatureLanguage="C#"Value="public override System.Reflection.Assembly MapAssembly (System.Reflection.Assembly assembly);" />
<MemberSignatureLanguage="ILAsm"Value=".method public hidebysig virtual instance class System.Reflection.Assembly MapAssembly(class System.Reflection.Assembly assembly) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.MapAssembly(System.Reflection.Assembly)" />
<MemberSignatureLanguage="VB.NET"Value="Public Overrides Function MapAssembly (assembly As Assembly) As Assembly" />
<MemberSignatureLanguage="F#"Value="override this.MapAssembly : System.Reflection.Assembly -> System.Reflection.Assembly"Usage="customReflectionContext.MapAssembly assembly" />
<MemberSignatureLanguage="C++ CLI"Value="public:
 override System::Reflection::Assembly ^ MapAssembly(System::Reflection::Assembly ^ assembly);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.Assembly</ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="assembly"Type="System.Reflection.Assembly" />
</Parameters>
<Docs>
<paramname="assembly">The external representation of the assembly to represent in this context.</param>
<summary>
Gets the representation, in this reflection context, of an assembly that is represented by an object from another reflection context.
</summary>
<returns>The representation of the assembly in this reflection context.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<MemberMemberName="MapType">
<MemberSignatureLanguage="C#"Value="public override System.Reflection.TypeInfo MapType (System.Reflection.TypeInfo type);" />
<MemberSignatureLanguage="ILAsm"Value=".method public hidebysig virtual instance class System.Reflection.TypeInfo MapType(class System.Reflection.TypeInfo type) cil managed" />
<MemberSignatureLanguage="DocId"Value="M:System.Reflection.Context.CustomReflectionContext.MapType(System.Reflection.TypeInfo)" />
<MemberSignatureLanguage="VB.NET"Value="Public Overrides Function MapType (type As TypeInfo) As TypeInfo" />
<MemberSignatureLanguage="F#"Value="override this.MapType : System.Reflection.TypeInfo -> System.Reflection.TypeInfo"Usage="customReflectionContext.MapType type" />
<MemberSignatureLanguage="C++ CLI"Value="public:
 override System::Reflection::TypeInfo ^ MapType(System::Reflection::TypeInfo ^ type);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Context</AssemblyName>
<AssemblyVersion>4.0.3.0</AssemblyVersion>
<AssemblyVersion>11.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.TypeInfo</ReturnType>
</ReturnValue>
<Parameters>
<ParameterName="type"Type="System.Reflection.TypeInfo" />
</Parameters>
<Docs>
<paramname="type">The external representation of the type to represent in this context.</param>
<summary>
Gets the representation, in this reflection context, of a type represented by an object from another reflection context.
</summary>
<returns>The representation of the type in this reflection context.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>