1 .assembly extern mscorlib
4 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
8 .custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'() = (
9 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
10 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
12 .hash algorithm 0x00008004
15 .module 'bug-0.exe' // GUID = {5680CF40-DE38-48DF-A437-2A55C9E7DA2E}
18 .class interface private auto ansi abstract IBar`1<T>
22 .method public virtual hidebysig newslot abstract specialname
23 instance default void add_Handler (class Handler`1<!T> 'value') cil managed
25 // Method begins at RVA 0x0
26 } // end of method IBar`1::add_Handler
29 .method public virtual hidebysig newslot abstract specialname
30 instance default void remove_Handler (class Handler`1<!T> 'value') cil managed
32 // Method begins at RVA 0x0
33 } // end of method IBar`1::remove_Handler
35 .event class Handler`1<!0> Handler
37 .addon instance default void IBar`1::add_Handler (class Handler`1<!0> 'value')
38 .removeon instance default void IBar`1::remove_Handler (class Handler`1<!0> 'value')
40 } // end of class IBar`1
42 .class private auto ansi beforefieldinit Foo`1<T>
43 extends [mscorlib]System.Object
45 .field private class IBar`1<!0> proxy
46 .field private class IBar`1<!0> real
47 .field private class Handler`1<!0> proxyHandler
48 .field private class Handler`1<!0> 'handler'
51 .method public hidebysig specialname rtspecialname
52 instance default void '.ctor' () cil managed
54 // Method begins at RVA 0x20ec
58 IL_0001: call instance void object::'.ctor'()
60 } // end of method Foo`1::.ctor
63 .method private hidebysig specialname
64 instance default void add_handler (class Handler`1<!T> 'value') cil managed synchronized
66 // Method begins at RVA 0x20f4
67 // Code size 24 (0x18)
71 IL_0002: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
73 IL_0008: call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
74 IL_000d: castclass class Handler`1<!0>
75 IL_0012: stfld class Handler`1<!0> class Foo`1<!0>::'handler'
77 } // end of method Foo`1::add_handler
80 .method private hidebysig specialname
81 instance default void remove_handler (class Handler`1<!T> 'value') cil managed synchronized
83 // Method begins at RVA 0x2110
84 // Code size 24 (0x18)
88 IL_0002: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
90 IL_0008: call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
91 IL_000d: castclass class Handler`1<!0>
92 IL_0012: stfld class Handler`1<!0> class Foo`1<!0>::'handler'
94 } // end of method Foo`1::remove_handler
97 .method public hidebysig specialname
98 instance default void add_Handler (class Handler`1<!T> 'value') cil managed
100 // Method begins at RVA 0x212c
101 // Code size 64 (0x40)
104 IL_0001: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
105 IL_0006: brtrue IL_0028
108 IL_000c: ldfld class Handler`1<!0> class Foo`1<!0>::proxyHandler
109 IL_0011: brtrue IL_0028
113 IL_0018: ldftn instance void class Foo`1<!T>::'<Foo`1>m__0'<!!0> (object)
114 IL_001e: newobj instance void class Handler`1<!T>::'.ctor'(object, native int)
115 IL_0023: stfld class Handler`1<!0> class Foo`1<!0>::proxyHandler
118 IL_002a: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
120 IL_0030: call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
121 IL_0035: castclass class Handler`1<!0>
122 IL_003a: stfld class Handler`1<!0> class Foo`1<!0>::'handler'
124 } // end of method Foo`1::add_Handler
127 .method public hidebysig specialname
128 instance default void remove_Handler (class Handler`1<!T> 'value') cil managed
130 // Method begins at RVA 0x2178
131 // Code size 24 (0x18)
135 IL_0002: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
137 IL_0008: call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
138 IL_000d: castclass class Handler`1<!0>
139 IL_0012: stfld class Handler`1<!0> class Foo`1<!0>::'handler'
141 } // end of method Foo`1::remove_Handler
144 .method private hidebysig
145 instance default void '<Foo`1>m__0'<T> (object s) cil managed
147 .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() = (01 00 00 00 ) // ....
149 // Method begins at RVA 0x2194
150 // Code size 18 (0x12)
153 IL_0001: ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
155 IL_0007: ldfld class IBar`1<!0> class Foo`1<!0>::proxy
156 IL_000c: callvirt instance void class Handler`1<!T>::Invoke(object)
158 } // end of method Foo`1::<Foo`1>m__0
160 .event class Handler`1<!0> 'handler'
162 .addon instance default void Foo`1::add_handler (class Handler`1<!0> 'value')
163 .removeon instance default void Foo`1::remove_handler (class Handler`1<!0> 'value')
165 .event class Handler`1<!0> Handler
167 .addon instance default void Foo`1::add_Handler (class Handler`1<!0> 'value')
168 .removeon instance default void Foo`1::remove_Handler (class Handler`1<!0> 'value')
170 } // end of class Foo`1
172 .class private auto ansi beforefieldinit Program
173 extends [mscorlib]System.Object
177 .method public hidebysig specialname rtspecialname
178 instance default void '.ctor' () cil managed
180 // Method begins at RVA 0x21a8
184 IL_0001: call instance void object::'.ctor'()
186 } // end of method Program::.ctor
189 .method private static hidebysig
190 default void Main () cil managed
192 // Method begins at RVA 0x21b0
194 // Code size 14 (0xe)
197 class Foo`1<int32> V_0)
198 IL_0000: newobj instance void class Foo`1<int32>::'.ctor'()
202 IL_0008: callvirt instance void class Foo`1<int32>::add_Handler(class Handler`1<!0>)
204 } // end of method Program::Main
206 } // end of class Program
208 .class private auto ansi sealed Handler`1<T>
209 extends [mscorlib]System.MulticastDelegate
213 .method public hidebysig specialname rtspecialname
214 instance default void '.ctor' (object 'object', native int 'method') runtime managed
216 // Method begins at RVA 0x0
217 // Disassembly of native methods is not supported
218 } // end of method Handler`1::.ctor
221 .method public virtual hidebysig newslot
222 instance default void Invoke (object sender) runtime managed
224 // Method begins at RVA 0x0
225 // Disassembly of native methods is not supported
226 } // end of method Handler`1::Invoke
229 .method public virtual hidebysig newslot
230 instance default class [mscorlib]System.IAsyncResult BeginInvoke (object sender, class [mscorlib]System.AsyncCallback callback, object 'object') runtime managed
232 // Method begins at RVA 0x0
233 // Disassembly of native methods is not supported
234 } // end of method Handler`1::BeginInvoke
237 .method public virtual hidebysig newslot
238 instance default void EndInvoke (class [mscorlib]System.IAsyncResult result) runtime managed
240 // Method begins at RVA 0x0
241 // Disassembly of native methods is not supported
242 } // end of method Handler`1::EndInvoke
244 } // end of class Handler`1