
// Generated by PostSharp 2.0.8.1275 at 06.10.2010 1:40:39 (encoding = System.Text.UnicodeEncoding)
 .assembly extern'mscorlib'
 {
 .publickeytoken = ( B7 7A 5C 56 19 34 E0 89)
 .ver 4 : 0 : 0 : 0
 }
 .assembly extern'System.Core'
 {
 .publickeytoken = ( B7 7A 5C 56 19 34 E0 89)
 .ver 4 : 0 : 0 : 0
 }
 .assembly extern'PostSharp'
 {
 .publickeytoken = ( B1 3F D3 8B 8F 9C 99 D7)
 .ver 2 : 0 : 0 : 0
 }
 .assembly'ConsoleApplication3'
 {
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyDescriptionAttribute' ::'.ctor' ( string ) = ( 01 00 00 00 00)
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyTrademarkAttribute' ::'.ctor' ( string ) = ( 01 00 00 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyTitleAttribute' ::'.ctor' ( string ) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63
61 74 69 6F 6E 33 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyConfigurationAttribute' ::'.ctor' ( string ) = ( 01 00 00 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyCompanyAttribute' ::'.ctor' ( string ) = ( 01 00 09 4D 69 63 72 6F 73 6F 66 74 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyProductAttribute' ::'.ctor' ( string ) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63
61 74 69 6F 6E 33 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyCopyrightAttribute' ::'.ctor' ( string ) = ( 01 00 1B 43 6F 70 79 72 69 67 68 74 20 C2 A9 20
4D 69 63 72 6F 73 6F 66 74 20 32 30 31 30 00 00)
 .custom instance void  ['mscorlib' ]'System.Reflection.AssemblyFileVersionAttribute' ::'.ctor' ( string ) = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00)
 .custom instance void  ['mscorlib' ]'System.Runtime.InteropServices.ComVisibleAttribute' ::'.ctor' ( bool ) = ( 01 00 00 00 00)
 .custom instance void  ['mscorlib' ]'System.Runtime.InteropServices.GuidAttribute' ::'.ctor' ( string ) = ( 01 00 24 33 39 39 63 35 32 65 30 2D 63 37 31 64
2D 34 66 39 65 2D 62 30 39 31 2D 33 33 64 63 66
63 63 31 31 35 33 33 00 00)
 .custom instance void  ['mscorlib' ]'System.Diagnostics.DebuggableAttribute' ::'.ctor' ( valuetype  ['mscorlib' ]'System.Diagnostics.DebuggableAttribute' /'DebuggingModes' ) = ( 01 00 07 01 00 00 00 00)
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.RuntimeCompatibilityAttribute' ::'.ctor' ( ) = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01)
 .custom instance void  ['mscorlib' ]'System.Runtime.Versioning.TargetFrameworkAttribute' ::'.ctor' ( string ) = ( 01 00 29 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B
2C 56 65 72 73 69 6F 6E 3D 76 34 2E 30 2C 50 72
6F 66 69 6C 65 3D 43 6C 69 65 6E 74 01 00 54 0E
14 46 72 61 6D 65 77 6F 72 6B 44 69 73 70 6C 61
79 4E 61 6D 65 1F 2E 4E 45 54 20 46 72 61 6D 65
77 6F 72 6B 20 34 20 43 6C 69 65 6E 74 20 50 72
6F 66 69 6C 65)
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilationRelaxationsAttribute' ::'.ctor' ( int32 ) = ( 01 00 08 00 00 00 00 00)
 .custom instance void  ['PostSharp' ]'PostSharp.Extensibility.EnhancedByPostSharpAttribute' ::'.ctor' ( int32 ) = ( 01 00 00 00 00 00 00 00)
 .hash algorithm 0x00008004
 .ver 1 : 0 : 0 : 0
 }
 .module'ConsoleApplication3.exe'
 .imagebase 0x400000
 .file alignment 0x00000200
 .stackreserve 0x100000
 .subsystem 0x0003
 .corflags 0x00000003
 .class public abstract auto ansi sealed'ConsoleApplication3.ObjectExtensions'
 extends  ['mscorlib' ]'System.Object'
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .class auto ansi sealed nested private beforefieldinit'<>c__DisplayClass7'
 extends  ['mscorlib' ]'System.Object'
 {
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .field public object 'targetObject'

 .method public hidebysig specialname rtspecialname instance void'.ctor' ( ) cil managed
 {
 .maxstack 8

 IL_0000 :
 ldarg.0   
 call       instance void  ['mscorlib' ]'System.Object' ::'.ctor' ( )
 ret       
 }
// End of method: ConsoleApplication3.ObjectExtensions::<>c__DisplayClass7/.ctor() : void

 .method public hidebysig instance bool'<Extensions>b__5' ( class  ['mscorlib' ]'System.WeakReference' 'w' ) cil managed
 {
 .maxstack 2
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  bool 'CS$1$0000' )

 IL_0000 :
 .line 53 , 53 : 62 , 108 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 ldarg.1   
 callvirt   instance object  ['mscorlib' ]'System.WeakReference' ::'get_Target' ( )
 ldarg.0   
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' :: 'targetObject'
 call       bool  ['mscorlib' ]'System.Object' ::'ReferenceEquals' ( object ,
 object )
 stloc.0   
 br.s       IL_0001

 IL_0001 :

 ldloc.0   
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions::<>c__DisplayClass7/<Extensions>b__5([mscorlib]System.WeakReference w) : bool

 }
// End of type: ConsoleApplication3.ObjectExtensions::<>c__DisplayClass7



 .class auto ansi sealed nested private beforefieldinit'<>c__DisplayClassc'
 extends  ['mscorlib' ]'System.Object'
 {
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .field public object 'targetObject'

 .method public hidebysig specialname rtspecialname instance void'.ctor' ( ) cil managed
 {
 .maxstack 8

 IL_0000 :
 ldarg.0   
 call       instance void  ['mscorlib' ]'System.Object' ::'.ctor' ( )
 ret       
 }
// End of method: ConsoleApplication3.ObjectExtensions::<>c__DisplayClassc/.ctor() : void

 .method public hidebysig instance bool'<ClearExtensions>b__a' ( class  ['mscorlib' ]'System.WeakReference' 'w' ) cil managed
 {
 .maxstack 2
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  bool 'CS$1$0000' )

 IL_0000 :
 .line 88 , 88 : 62 , 108 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 ldarg.1   
 callvirt   instance object  ['mscorlib' ]'System.WeakReference' ::'get_Target' ( )
 ldarg.0   
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' :: 'targetObject'
 call       bool  ['mscorlib' ]'System.Object' ::'ReferenceEquals' ( object ,
 object )
 stloc.0   
 br.s       IL_0001

 IL_0001 :

 ldloc.0   
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions::<>c__DisplayClassc/<ClearExtensions>b__a([mscorlib]System.WeakReference w) : bool

 }
// End of type: ConsoleApplication3.ObjectExtensions::<>c__DisplayClassc



 .field private static initonly class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > '_extensionMembers'

 .field private static initonly class  ['mscorlib' ]'System.Threading.Timer' '_cleaner'

 .field private static class  ['mscorlib' ]'System.Threading.TimerCallback' 'CS$<>9__CachedAnonymousMethodDelegate2'
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)

 .field private static class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > 'CS$<>9__CachedAnonymousMethodDelegate3'
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)

 .method private hidebysig specialname rtspecialname static void'.cctor' ( ) cil managed
 {
 .maxstack 8
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'


 IL_0000 :
 .line 24 , 24 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 25 , 25 : 4 , 84
 newobj     instance void class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'.ctor' ( )
 stsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 .line 27 , 34 : 4 , 23
 ldsfld     class  ['mscorlib' ]'System.Threading.TimerCallback''ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate2'
 brtrue.s   IL_0002

 IL_0001 :
 ldnull    
 ldftn      void'ConsoleApplication3.ObjectExtensions' ::'<.cctor>b__0' ( object )
 newobj     instance void  ['mscorlib' ]'System.Threading.TimerCallback' ::'.ctor' ( object ,
 native int )
 stsfld     class  ['mscorlib' ]'System.Threading.TimerCallback''ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate2'
 br.s       IL_0002

 IL_0002 :
 ldsfld     class  ['mscorlib' ]'System.Threading.TimerCallback''ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate2'
 ldnull    
 ldc.i4.0  
 ldc.i4     0x2710
 newobj     instance void  ['mscorlib' ]'System.Threading.Timer' ::'.ctor' ( class  ['mscorlib' ]'System.Threading.TimerCallback' ,
 object ,
 int32 ,
 int32 )
 stsfld     class  ['mscorlib' ]'System.Threading.Timer''ConsoleApplication3.ObjectExtensions' :: '_cleaner'
 .line 35 , 35 : 3 , 4
 nop       
 ret       
 }
// End of method: ConsoleApplication3.ObjectExtensions/.cctor() : void

 .method private hidebysig static class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object >'Extensions' ( object 'targetObject' ,
 bool 'createIfNotExist' ) cil managed
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 4
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 2 ]  bool '<>s__LockTaken4' ,
 [ 3 ]  class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > 'CS$<>9__CachedAnonymousMethodDelegate6' ,
 [ 4 ]  class'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' 'CS$<>8__locals8' ,
 [ 5 ]  class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > 'CS$1$0000' ,
 [ 6 ]  bool 'CS$4$0001' ,
 [ 7 ]  object 'CS$2$0002' )

 IL_0000 :
.line 0x00feefee,0 : 0,0
 ldnull    
 stloc.3   
 newobj     instance void'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' ::'.ctor' ( )
 stloc.s    'CS$<>8__locals8'
 ldloc.s    'CS$<>8__locals8'
 ldarg.0   
 stfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' :: 'targetObject'
 .line 45 , 45 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 47 , 47 : 4 , 29
 ldloc.s    'CS$<>8__locals8'
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' :: 'targetObject'
 ldnull    
 ceq       
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_0002

 IL_0001 :
 .line 48 , 48 : 5 , 17
 ldnull    
 stloc.s    'CS$1$0000'
 br         IL_000F

 IL_0002 :

 ldc.i4.0  
 stloc.2   
 .try
 {
 {
 .locals init ( [ 0 ]  class  ['mscorlib' ]'System.WeakReference' 'weakKey' )

 IL_0003 :
 .line 50 , 50 : 4 , 23
 ldloc.s    'CS$<>8__locals8'
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' :: 'targetObject'
 dup       
 stloc.s    'CS$2$0002'
 ldloca.s   '<>s__LockTaken4'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Enter' ( object ,
 bool & )
 nop       
 .line 51 , 51 : 4 , 5
 nop       
 .line 53 , 53 : 5 , 110
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 callvirt   instance class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' /'KeyCollection' < ! 0 , ! 1 > class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'get_Keys' ( )
 ldloc.3   
 brtrue.s   IL_0005

 IL_0004 :
 ldloc.s    'CS$<>8__locals8'
 ldftn      instance bool'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' ::'<Extensions>b__5' ( class  ['mscorlib' ]'System.WeakReference' )
 newobj     instance void class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > ::'.ctor' ( object ,
 native int )
 stloc.3   
 br.s       IL_0005

 IL_0005 :
 ldloc.3   
 call       !! 0  ['System.Core' ]'System.Linq.Enumerable' ::'FirstOrDefault' < class  ['mscorlib' ]'System.WeakReference' > ( class  ['mscorlib' ]'System.Collections.Generic.IEnumerable`1' < !! 0 > ,
 class  ['mscorlib' ]'System.Func`2' < !! 0 , bool > )
 stloc.0   
 .line 55 , 55 : 5 , 25
 ldloc.0   
 ldnull    
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_0007

 IL_0006 :
 .line 56 , 56 : 5 , 6
 nop       
 .line 58 , 58 : 6 , 40
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 ldloc.0   
 callvirt   instance ! 1 class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'get_Item' ( ! 0 )
 stloc.s    'CS$1$0000'
 leave.s    IL_000F

 IL_0007 :
 .line 60 , 60 : 10 , 31
 ldarg.1   
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_0009
 {
 .locals init ( [ 1 ]  class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > 'members' )

 IL_0008 :
 .line 61 , 61 : 5 , 6
 nop       
 .line 63 , 63 : 6 , 55
 ldloc.s    'CS$<>8__locals8'
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClass7' :: 'targetObject'
 ldc.i4.0  
 newobj     instance void  ['mscorlib' ]'System.WeakReference' ::'.ctor' ( object ,
 bool )
 stloc.0   
 .line 64 , 64 : 6 , 75
 call       class  ['mscorlib' ]'System.StringComparer'  ['mscorlib' ]'System.StringComparer' ::'get_Ordinal' ( )
 newobj     instance void class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'.ctor' ( class  ['mscorlib' ]'System.Collections.Generic.IEqualityComparer`1' < ! 0 > )
 stloc.1   
 .line 65 , 65 : 6 , 43
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 ldloc.0   
 ldloc.1   
 callvirt   instance void class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'set_Item' ( ! 0 ,
 ! 1 )
 nop       
 .line 66 , 66 : 6 , 21
 ldloc.1   
 stloc.s    'CS$1$0000'
 leave.s    IL_000F

 IL_0009 :
 }
 }

 IL_000A :

 leave.s    IL_000E
 }
 finally
 {

 IL_000B :
 ldloc.2   
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'
 ldloc.s    'CS$4$0001'
 brtrue.s   IL_000D

 IL_000C :
 ldloc.s    'CS$2$0002'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Exit' ( object )
 nop       

 IL_000D :
 endfinally
 }

 IL_000E :

 nop       
 .line 69 , 69 : 4 , 16
 ldnull    
 stloc.s    'CS$1$0000'
 br.s       IL_000F

 IL_000F :
 .line 70 , 70 : 3 , 4
 ldloc.s    'CS$1$0000'
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/Extensions(object targetObject, bool createIfNotExist) : [mscorlib]System.Collections.Generic.Dictionary`2<string,object>

 .method public hidebysig static void'ClearExtensions' ( object 'targetObject' ) cil managed
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 4
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 1 ]  bool '<>s__LockTaken9' ,
 [ 2 ]  class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > 'CS$<>9__CachedAnonymousMethodDelegateb' ,
 [ 3 ]  class'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' 'CS$<>8__localsd' ,
 [ 4 ]  bool 'CS$4$0000' ,
 [ 5 ]  object 'CS$2$0001' )

 IL_0000 :
.line 0x00feefee,1 : 0,0
 ldnull    
 stloc.2   
 newobj     instance void'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' ::'.ctor' ( )
 stloc.3   
 ldloc.3   
 ldarg.0   
 stfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' :: 'targetObject'
 .line 80 , 80 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 82 , 82 : 4 , 29
 ldloc.3   
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' :: 'targetObject'
 ldnull    
 ceq       
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0000'

 ldloc.s    'CS$4$0000'
 brtrue.s   IL_0002

 IL_0001 :
 .line 83 , 83 : 5 , 12
 br.s       IL_000D

 IL_0002 :

 ldc.i4.0  
 stloc.1   
 .try
 {
 {
 .locals init ( [ 0 ]  class  ['mscorlib' ]'System.WeakReference' 'weakKey' )

 IL_0003 :
 .line 85 , 85 : 4 , 23
 ldloc.3   
 ldfld      object'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' :: 'targetObject'
 dup       
 stloc.s    'CS$2$0001'
 ldloca.s   '<>s__LockTaken9'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Enter' ( object ,
 bool & )
 nop       
 .line 86 , 86 : 4 , 5
 nop       
 .line 88 , 88 : 5 , 110
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 callvirt   instance class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' /'KeyCollection' < ! 0 , ! 1 > class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'get_Keys' ( )
 ldloc.2   
 brtrue.s   IL_0005

 IL_0004 :
 ldloc.3   
 ldftn      instance bool'ConsoleApplication3.ObjectExtensions' /'<>c__DisplayClassc' ::'<ClearExtensions>b__a' ( class  ['mscorlib' ]'System.WeakReference' )
 newobj     instance void class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > ::'.ctor' ( object ,
 native int )
 stloc.2   
 br.s       IL_0005

 IL_0005 :
 ldloc.2   
 call       !! 0  ['System.Core' ]'System.Linq.Enumerable' ::'FirstOrDefault' < class  ['mscorlib' ]'System.WeakReference' > ( class  ['mscorlib' ]'System.Collections.Generic.IEnumerable`1' < !! 0 > ,
 class  ['mscorlib' ]'System.Func`2' < !! 0 , bool > )
 stloc.0   
 .line 90 , 90 : 5 , 25
 ldloc.0   
 ldnull    
 ceq       
 stloc.s    'CS$4$0000'

 ldloc.s    'CS$4$0000'
 brtrue.s   IL_0007

 IL_0006 :
 .line 91 , 91 : 5 , 6
 nop       
 .line 93 , 93 : 6 , 40
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 ldloc.0   
 callvirt   instance bool class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'Remove' ( ! 0 )
 pop       
 .line 94 , 94 : 5 , 6
 nop       

 IL_0007 :
 .line 95 , 95 : 4 , 5
 nop       
 }

 IL_0008 :

 leave.s    IL_000C
 }
 finally
 {

 IL_0009 :
 ldloc.1   
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0000'
 ldloc.s    'CS$4$0000'
 brtrue.s   IL_000B

 IL_000A :
 ldloc.s    'CS$2$0001'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Exit' ( object )
 nop       

 IL_000B :
 endfinally
 }

 IL_000C :

 nop       
 .line 96 , 96 : 3 , 4
 nop       

 IL_000D :
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/ClearExtensions(object targetObject) : void

 .method public hidebysig static void'Extension' ( object 'targetObject' ,
 string 'key' ,
 object 'value' ) cil managed
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 3
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > 'extensions' ,
 [ 2 ]  bool 'CS$4$0000' ,
 [ 3 ]  object 'CS$2$0001' )

 IL_0000 :
 .line 102 , 102 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 103 , 103 : 4 , 58
 ldarg.0   
 brfalse.s  IL_0002

 IL_0001 :
 ldarg.1   
 call       bool  ['mscorlib' ]'System.String' ::'IsNullOrEmpty' ( string )
 ldc.i4.0  
 ceq       
 br.s       IL_0003

 IL_0002 :
 ldc.i4.0  

 IL_0003 :
 stloc.2   

 ldloc.2   
 brtrue.s   IL_0005

 IL_0004 :
 .line 104 , 104 : 5 , 12
 br.s       IL_000D

 IL_0005 :
 .line 107 , 107 : 4 , 51
 ldarg.0   
 ldc.i4.1  
 call       class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object >'ConsoleApplication3.ObjectExtensions' ::'Extensions' ( object ,
 bool )
 stloc.0   
 .line 110 , 110 : 4 , 22
 ldarg.2   
 ldnull    
 ceq       
 stloc.2   

 ldloc.2   
 brtrue.s   IL_0007

 IL_0006 :
 .line 111 , 111 : 4 , 5
 nop       
 .line 112 , 112 : 5 , 29
 ldloc.0   
 ldarg.1   
 ldarg.2   
 callvirt   instance void class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'set_Item' ( ! 0 ,
 ! 1 )
 nop       
 .line 113 , 113 : 4 , 5
 nop       

 br.s       IL_000D
 {
 .locals init ( [ 1 ]  bool '<>s__LockTakene' )

 IL_0007 :
 .line 115 , 115 : 4 , 5
 nop       

 ldc.i4.0  
 stloc.1   
 .try
 {

 IL_0008 :
 .line 116 , 116 : 5 , 23
 ldarg.0   
 dup       
 stloc.3   
 ldloca.s   '<>s__LockTakene'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Enter' ( object ,
 bool & )
 nop       
 .line 117 , 117 : 5 , 6
 nop       
 .line 118 , 118 : 6 , 29
 ldloc.0   
 ldarg.1   
 callvirt   instance bool class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'Remove' ( ! 0 )
 pop       
 .line 119 , 119 : 5 , 6
 nop       

 leave.s    IL_000C
 }
 finally
 {

 IL_0009 :
 ldloc.1   
 ldc.i4.0  
 ceq       
 stloc.2   
 ldloc.2   
 brtrue.s   IL_000B

 IL_000A :
 ldloc.3   
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Exit' ( object )
 nop       

 IL_000B :
 endfinally
 }

 IL_000C :

 nop       
 .line 120 , 120 : 4 , 5
 nop       
 }

 IL_000D :
 .line 121 , 121 : 3 , 4
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/Extension(object targetObject, string key, object value) : void

 .method public hidebysig static !! 'T''Extension' < 'T' > ( object 'targetObject' ,
 string 'key' ) cil managed
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 2
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 3 ]  !! 'T' 'CS$1$0000' ,
 [ 4 ]  bool 'CS$4$0001' ,
 [ 5 ]  object 'CS$2$0002' ,
 [ 6 ]  !! 'T' 'CS$0$0003' )

 IL_0000 :
 .line 127 , 127 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 128 , 128 : 4 , 59
 ldarg.0   
 brfalse.s  IL_0002

 IL_0001 :
 ldarg.1   
 call       bool  ['mscorlib' ]'System.String' ::'IsNullOrEmpty' ( string )
 br.s       IL_0003

 IL_0002 :
 ldc.i4.1  

 IL_0003 :
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue     IL_0012
 {
 .locals init ( [ 0 ]  class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > 'extensions' )

 IL_0004 :
 .line 129 , 129 : 4 , 5
 nop       
 .line 131 , 131 : 5 , 53
 ldarg.0   
 ldc.i4.0  
 call       class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object >'ConsoleApplication3.ObjectExtensions' ::'Extensions' ( object ,
 bool )
 stloc.0   
 .line 134 , 134 : 5 , 28
 ldloc.0   
 ldnull    
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue     IL_0011

 IL_0005 :
 .line 135 , 135 : 5 , 6
 nop       
 .line 137 , 137 : 6 , 38
 ldloc.0   
 ldarg.1   
 callvirt   instance bool class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'ContainsKey' ( ! 0 )
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_0010
 {
 .locals init ( [ 2 ]  bool '<>s__LockTakenf' )

 IL_0006 :
 .line 138 , 138 : 6 , 7
 nop       

 ldc.i4.0  
 stloc.2   
 .try
 {

 IL_0007 :
 .line 139 , 139 : 7 , 25
 ldarg.0   
 dup       
 stloc.s    'CS$2$0002'
 ldloca.s   '<>s__LockTakenf'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Enter' ( object ,
 bool & )
 nop       
 .line 140 , 140 : 7 , 8
 nop       
 .line 141 , 141 : 8 , 40
 ldloc.0   
 ldarg.1   
 callvirt   instance bool class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'ContainsKey' ( ! 0 )
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_000B
 {
 .locals init ( [ 1 ]  object 'value' )

 IL_0008 :
 .line 142 , 142 : 8 , 9
 nop       
 .line 144 , 144 : 9 , 37
 ldloc.0   
 ldarg.1   
 callvirt   instance ! 1 class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'get_Item' ( ! 0 )
 stloc.1   
 .line 145 , 145 : 9 , 24
 ldloc.1   
 isinst     !! 'T'
 ldnull    
 cgt.un    
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'

 ldloc.s    'CS$4$0001'
 brtrue.s   IL_000A

 IL_0009 :
 .line 147 , 147 : 10 , 36
 ldloc.0   
 ldarg.1   
 callvirt   instance ! 1 class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > ::'get_Item' ( ! 0 )
 unbox.any  !! 'T'
 stloc.3   
 leave.s    IL_0013

 IL_000A :
 }

 IL_000B :
 .line 149 , 149 : 7 , 8
 nop       

 leave.s    IL_000F
 }
 finally
 {

 IL_000C :
 ldloc.2   
 ldc.i4.0  
 ceq       
 stloc.s    'CS$4$0001'
 ldloc.s    'CS$4$0001'
 brtrue.s   IL_000E

 IL_000D :
 ldloc.s    'CS$2$0002'
 call       void  ['mscorlib' ]'System.Threading.Monitor' ::'Exit' ( object )
 nop       

 IL_000E :
 endfinally
 }

 IL_000F :

 nop       
 .line 150 , 150 : 6 , 7
 nop       
 }

 IL_0010 :
 .line 151 , 151 : 5 , 6
 nop       

 IL_0011 :
 .line 152 , 152 : 4 , 5
 nop       
 }

 IL_0012 :
 .line 154 , 154 : 4 , 22
 ldloca.s   'CS$0$0003'
 initobj    !! 'T'
 ldloc.s    'CS$0$0003'
 stloc.3   
 br.s       IL_0013

 IL_0013 :
 .line 155 , 155 : 3 , 4
 ldloc.3   
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/Extension(object targetObject, string key) : !!0

 .method public hidebysig static object'Extension' ( object 'targetObject' ,
 string 'key' ) cil managed
 {
 .custom instance void  ['System.Core' ]'System.Runtime.CompilerServices.ExtensionAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 2
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  object 'CS$1$0000' )

 IL_0000 :
 .line 158 , 158 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 159 , 159 : 4 , 47
 ldarg.0   
 ldarg.1   
 call       !! 0'ConsoleApplication3.ObjectExtensions' ::'Extension' < object > ( object ,
 string )
 stloc.0   
 br.s       IL_0001

 IL_0001 :
 .line 160 , 160 : 3 , 4
 ldloc.0   
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/Extension(object targetObject, string key) : object

 .method private hidebysig static void'<.cctor>b__0' ( object 'o' ) cil managed
 {
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 4
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 1 ]  class  ['mscorlib' ]'System.WeakReference' [ ]  'CS$6$0000' ,
 [ 2 ]  int32 'CS$7$0001' ,
 [ 3 ]  bool 'CS$4$0002' )

 IL_0000 :
 .line 28 , 28 : 4 , 5 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 nop       
 .line 30 , 30 : 5 , 12
 nop       
 {
 .locals init ( [ 0 ]  class  ['mscorlib' ]'System.WeakReference' 'key' )

 IL_0001 :
 .line 30 , 30 : 25 , 80
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 callvirt   instance class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' /'KeyCollection' < ! 0 , ! 1 > class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'get_Keys' ( )
 ldsfld     class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool >'ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate3'
 brtrue.s   IL_0003

 IL_0002 :
 ldnull    
 ldftn      bool'ConsoleApplication3.ObjectExtensions' ::'<.cctor>b__1' ( class  ['mscorlib' ]'System.WeakReference' )
 newobj     instance void class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool > ::'.ctor' ( object ,
 native int )
 stsfld     class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool >'ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate3'
 br.s       IL_0003

 IL_0003 :
 ldsfld     class  ['mscorlib' ]'System.Func`2' < class  ['mscorlib' ]'System.WeakReference' , bool >'ConsoleApplication3.ObjectExtensions' :: 'CS$<>9__CachedAnonymousMethodDelegate3'
 call       class  ['mscorlib' ]'System.Collections.Generic.IEnumerable`1' < !! 0 >  ['System.Core' ]'System.Linq.Enumerable' ::'Where' < class  ['mscorlib' ]'System.WeakReference' > ( class  ['mscorlib' ]'System.Collections.Generic.IEnumerable`1' < !! 0 > ,
 class  ['mscorlib' ]'System.Func`2' < !! 0 , bool > )
 call       !! 0 [ ]   ['System.Core' ]'System.Linq.Enumerable' ::'ToArray' < class  ['mscorlib' ]'System.WeakReference' > ( class  ['mscorlib' ]'System.Collections.Generic.IEnumerable`1' < !! 0 > )
 stloc.1   

 ldc.i4.0  
 stloc.2   
 br.s       IL_0005

 IL_0004 :
 .line 30 , 30 : 14 , 21
 ldloc.1   
 ldloc.2   
 ldelem.ref
 stloc.0   
 .line 31 , 31 : 5 , 6
 nop       
 .line 32 , 32 : 6 , 36
 ldsfld     class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > >'ConsoleApplication3.ObjectExtensions' :: '_extensionMembers'
 ldloc.0   
 callvirt   instance bool class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < class  ['mscorlib' ]'System.WeakReference' , class  ['mscorlib' ]'System.Collections.Generic.Dictionary`2' < string , object > > ::'Remove' ( ! 0 )
 pop       
 .line 33 , 33 : 5 , 6
 nop       

 ldloc.2   
 ldc.i4.1  
 add       
 stloc.2   

 IL_0005 :
 .line 30 , 30 : 22 , 24
 ldloc.2   
 ldloc.1   
 ldlen     
 conv.i4   
 clt       
 stloc.3   

 ldloc.3   
 brtrue.s   IL_0004
 }

 IL_0006 :
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/<.cctor>b__0(object o) : void

 .method private hidebysig static bool'<.cctor>b__1' ( class  ['mscorlib' ]'System.WeakReference' 'k' ) cil managed
 {
 .custom instance void  ['mscorlib' ]'System.Runtime.CompilerServices.CompilerGeneratedAttribute' ::'.ctor' ( ) = ( 01 00 00 00)
 .maxstack 2
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  bool 'CS$1$0000' )

 IL_0000 :
 .line 30 , 30 : 59 , 69 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\ObjectExtensions.cs'
 ldarg.0   
 callvirt   instance bool  ['mscorlib' ]'System.WeakReference' ::'get_IsAlive' ( )
 ldc.i4.0  
 ceq       
 stloc.0   
 br.s       IL_0001

 IL_0001 :

 ldloc.0   
 ret       
 }
 }
// End of method: ConsoleApplication3.ObjectExtensions/<.cctor>b__1([mscorlib]System.WeakReference k) : bool

 }
// End of type: ConsoleApplication3.ObjectExtensions


 .class private auto ansi beforefieldinit'ConsoleApplication3.Program'
 extends  ['mscorlib' ]'System.Object'
 {
 .method private hidebysig static void'Main' ( string [ ]  'args' ) cil managed
 {
 .entrypoint
 .maxstack 8
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'


 IL_0000 :
 .line 15 , 15 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\Program.cs'
 nop       
 .line 16 , 16 : 4 , 10
 call       void'ConsoleApplication3.Program' ::'Foo' ( )
 nop       
 .line 17 , 17 : 4 , 17
 call       void  ['mscorlib' ]'System.GC' ::'Collect' ( )
 nop       
 .line 18 , 18 : 4 , 23
 call       string  ['mscorlib' ]'System.Console' ::'ReadLine' ( )
 pop       
 .line 19 , 19 : 3 , 4
 ret       
 }
// End of method: ConsoleApplication3.Program/Main(string[] args) : void

 .method private hidebysig static void'Foo' ( ) cil managed
 {
 .maxstack 3
 .language '{3f5162f8-07c6-11d3-9053-00c04fa302a1}' , '{994b45c4-e6e9-11d2-903f-00c04fa302a1}' , '{5a869d0b-6611-11d3-bd2a-0000f80849bd}'

 {
 .locals init ( [ 0 ]  object 'obj' ,
 [ 1 ]  valuetype  ['mscorlib' ]'System.DateTime' 'CS$0$0000' )

 IL_0000 :
 .line 22 , 22 : 3 , 4 'C:\\Users\\Dezmond\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication3\\ConsoleApplication3\\Program.cs'
 nop       
 .line 24 , 24 : 4 , 27
 newobj     instance void  ['mscorlib' ]'System.Object' ::'.ctor' ( )
 stloc.0   
 .line 27 , 27 : 4 , 34
 ldloc.0   
 ldstr      "haha"
 ldstr       bytearray ( 45 04 35 04 45 04 35 04)
 call       void'ConsoleApplication3.ObjectExtensions' ::'Extension' ( object ,
 string ,
 object )
 nop       
 .line 30 , 30 : 4 , 40
 ldloc.0   
 ldstr      "Haha"
 call       valuetype  ['mscorlib' ]'System.DateTime'  ['mscorlib' ]'System.DateTime' ::'get_Now' ( )
 box         ['mscorlib' ]'System.DateTime'
 call       void'ConsoleApplication3.ObjectExtensions' ::'Extension' ( object ,
 string ,
 object )
 nop       
 .line 33 , 33 : 4 , 45
 ldloc.0   
 ldstr      "haha"
 call       object'ConsoleApplication3.ObjectExtensions' ::'Extension' ( object ,
 string )
 call       void  ['mscorlib' ]'System.Console' ::'WriteLine' ( object )
 nop       
 .line 34 , 34 : 4 , 60
 ldloc.0   
 ldstr      "Haha"
 call       !! 0'ConsoleApplication3.ObjectExtensions' ::'Extension' < valuetype  ['mscorlib' ]'System.DateTime' > ( object ,
 string )
 stloc.1   
 ldloca.s   'CS$0$0000'
 call       instance int32  ['mscorlib' ]'System.DateTime' ::'get_Year' ( )
 call       void  ['mscorlib' ]'System.Console' ::'WriteLine' ( int32 )
 nop       
 .line 39 , 39 : 3 , 4
 ret       
 }
 }
// End of method: ConsoleApplication3.Program/Foo() : void

 .method public hidebysig specialname rtspecialname instance void'.ctor' ( ) cil managed
 {
 .maxstack 8

 IL_0000 :
 ldarg.0   
 call       instance void  ['mscorlib' ]'System.Object' ::'.ctor' ( )
 ret       
 }
// End of method: ConsoleApplication3.Program/.ctor() : void

 }
// End of type: ConsoleApplication3.Program


