-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathMetadataUpdateHandlerAttribute.xml
116 lines (112 loc) · 8.06 KB
/
MetadataUpdateHandlerAttribute.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
<Type Name="MetadataUpdateHandlerAttribute" FullName="System.Reflection.Metadata.MetadataUpdateHandlerAttribute">
<TypeSignature Language="C#" Value="public sealed class MetadataUpdateHandlerAttribute : Attribute" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit MetadataUpdateHandlerAttribute extends System.Attribute" />
<TypeSignature Language="DocId" Value="T:System.Reflection.Metadata.MetadataUpdateHandlerAttribute" />
<TypeSignature Language="VB.NET" Value="Public NotInheritable Class MetadataUpdateHandlerAttribute
Inherits Attribute" />
<TypeSignature Language="F#" Value="type MetadataUpdateHandlerAttribute = class
 inherit Attribute" />
<TypeSignature Language="C++ CLI" Value="public ref class MetadataUpdateHandlerAttribute sealed : Attribute" />
<AssemblyInfo>
<AssemblyName>System.Runtime.Loader</AssemblyName>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Attribute</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName Language="C#">[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=true)]</AttributeName>
<AttributeName Language="F#">[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=true)>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(0)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.Nullable(0)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Indicates that a type that should receive notifications of metadata updates.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.Type> specified by this attribute should implement static methods matching the signature of one or more of the following (visibility of the methods does not matter):
- `static void ClearCache(Type[]? updatedTypes)`
- `static void UpdateApplication(Type[]? updatedTypes)`
After a metadata update is applied, `ClearCache` is invoked for every handler that specifies one. This gives update handlers an opportunity to clear any caches that are inferred based on the application's metadata. After all `ClearCache` methods have been invoked, `UpdateApplication` is invoked for every handler that specifies one. This enables applications to refresh the application state, trigger a UI re-render, or other such reactions. When specified, the `updatedTypes` parameter contains the set of types that were affected by the metadata update; if it's `null`, any type may have been updated.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MetadataUpdateHandlerAttribute (Type handlerType);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Type handlerType) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Reflection.Metadata.MetadataUpdateHandlerAttribute.#ctor(System.Type)" />
<MemberSignature Language="VB.NET" Value="Public Sub New (handlerType As Type)" />
<MemberSignature Language="F#" Value="new System.Reflection.Metadata.MetadataUpdateHandlerAttribute : Type -> System.Reflection.Metadata.MetadataUpdateHandlerAttribute" Usage="new System.Reflection.Metadata.MetadataUpdateHandlerAttribute handlerType" />
<MemberSignature Language="C++ CLI" Value="public:
 MetadataUpdateHandlerAttribute(Type ^ handlerType);" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime.Loader</AssemblyName>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="handlerType" Type="System.Type">
<Attributes>
<Attribute FrameworkAlternate="net-6.0;net-7.0">
<AttributeName Language="C#">[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]</AttributeName>
<AttributeName Language="F#">[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)]</AttributeName>
<AttributeName Language="F#">[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
</Parameters>
<Docs>
<param name="handlerType">A type that handles metadata updates and that should be notified when any occur.</param>
<summary>Initializes the attribute.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="HandlerType">
<MemberSignature Language="C#" Value="public Type HandlerType { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Type HandlerType" />
<MemberSignature Language="DocId" Value="P:System.Reflection.Metadata.MetadataUpdateHandlerAttribute.HandlerType" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property HandlerType As Type" />
<MemberSignature Language="F#" Value="member this.HandlerType : Type" Usage="System.Reflection.Metadata.MetadataUpdateHandlerAttribute.HandlerType" />
<MemberSignature Language="C++ CLI" Value="public:
 property Type ^ HandlerType { Type ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime.Loader</AssemblyName>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="net-6.0;net-7.0">
<AttributeName Language="C#">[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]</AttributeName>
<AttributeName Language="F#">[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)]</AttributeName>
<AttributeName Language="F#">[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods)>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Type</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the type that handles metadata updates and that should be notified when any occur.</summary>
<value>To be added.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>