.NET рдбрд╛рдпрдиреЗрдорд┐рдХ, рдпреВрдирд┐рдЯреА рдФрд░ рд░рдирдЯрд╛рдЗрдордмрд╛рдЗрдВрдбрд░ рдмрдЧ

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛, рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреАрдорд╛рд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдЖрдк рдереЛрдбрд╝рд╛ рдЖрд░рд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЪрд╛рдирдХ, рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рд╣реБрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд▓рдЧреАрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЬрд╛рдВрдЪрд╛ рдЧрдпрд╛ рдФрд░ рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖред

рд╕рднреА рдХрд╛рд░реНрдпрд╕реНрдерд╛рдиреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐, рдЬрд╣рд╛рдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:

System.IndexOutOfRangeException: Index was outside the bounds of the array
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GetMethodInfoFromExpr(EXPRMETHODINFO methinfo)
...


рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рд╡рд╣ рдХреЛрдб рдХреА рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╣рдЬ рдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА:

 public void FillFrom(dynamic launch) { Log.ShowLog(launch.Id); } 

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ Windows XP рд╣реИ, рд╣рдо .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.0 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕реАрдорд┐рдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ XP рдкрд░ рджрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдм рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╡реАрдПрд╕ 2012 рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ 4.5 рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рдорд╛рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХреА рдХрдореА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛ рдФрд░ рд╣рдо рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░


рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдбрд╛рдпрдиреЗрдорд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг, рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдПрдХ рдкреВрд░реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдореЗрдВ, рд╕реАрдзреЗ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡рд┐рдзрд┐ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рддрдерд╛рдХрдерд┐рдд "рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА ред " рдпрд╣реА рд╣реИ, рд▓реЙрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ, "рд╢реЛрд▓рд╛рдЧ" рд╡рд┐рдзрд┐ рдПрдХ рдФрд░ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП RuntimeBinder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ рдФрд░ рдЧрд▓рдд рддрд░реАрдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдерд╛ред рдпрд╣ рдЕрдкрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рдерд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рдереАред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг


рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ RuntimeBinder рд╢реБрд░реВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рддрд░реАрдХрд╛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░, рдЕрдкрдиреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рднреА рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЯреЛрдХрди рдХреА рддреБрд▓рдирд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╡рд┐рдзрд┐ рдХреЗ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЯреЛрдХрди рд╕рдВрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдВрдзрдиреЗ рд╡рд╛рд▓рд╛ рдорд┐рд▓рд╛рди рд╡рд┐рдзрд┐ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдЯреЛрдХрди рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рднреАрддрд░, рдЯреЛрдХрди рдирдВрдмрд░ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рдереЗред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдЕрд╡рд╕рд░ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рд╕ рд╡рд░реНрдЧ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рд╡рд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╡рд░реНрдЧ рдХрд╛ рд╡рдВрд╢рдЬ рдерд╛ред

рдЕрдм рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рдЬрд▓реНрджреА рд╕реЗ рджреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд▓рд┐рдЦреЗрдВ, рджреЛ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо, рдФрд░ рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реАред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд╛рд░рд┐рд╕ рд╡рд┐рдзрд┐ рдФрд░ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЯреЛрдХрди рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд░рд┐рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдирд┐рдХрд▓рд╛ рдФрд░ рдЯреЛрдХрди рдХрд╛ рд╕рдВрдпреЛрдЧ рд╣реБрдЖ, рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░рдВрдЯрд╛рдЗрдордмрд╛рдЗрдВрдбрд░ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреА рд╣реИрдВ:

рдмрд╛рдЗрдВрдбрд┐рдВрдЧрдлреНрд▓реИрдЧред рдЗрдирд╕реНрдЯреЗрдВрд╕ | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЗ рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХ рдЦреЛрдЬ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред

рдЖрдЧреЗ рдХреА рдЦреБрджрд╛рдИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ "рд╕рд╛рдзрд╛рд░рдг" рд╡рд┐рдзрд┐ рдХреЗ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЯреЛрдХрди рд╡рд┐рдзрд┐ рд╕рдВрдпреЛрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдПрдХреНрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рдеред рдпрд╣реА рд╣реИ, ShowLog рдкрджреНрдзрддрд┐ рдХрд╛ рдЯреЛрдХрди, get_IsNotifying рд╡рд┐рдзрд┐ рдХреЗ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХреНрд╕реЗрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░ рдЪреБрдХрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдЙрддреНрддрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдорд┐рд▓ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рджрд┐рдЦрд╛рдИ рджреА, рдЧреЗрдЯ_ рд╡рд┐рдзрд┐ рдЯреЛрдХрди ... рдЬреЛ рд╢реЛрд▓реЗрдЧ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди, рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рдпрджреНрдпрдкрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ get_ рдФрд░ set_ рд╡рд┐рдзрд┐рдпреЛрдВ рдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛, рд╡реЗ рд╕рднреА рдЪрдпрдирд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдереЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд╣реА ShowLog рд╡рд┐рдзрд┐ рдереА, рдЬрд┐рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ RuntimeBinder рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдХрддрд╛ рдХреА рднреВрдорд┐рдХрд╛

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рд╖рдп рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдПрдХрддрд╛ рдирд╛рдо рд╣реЛред рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реИ , рдЬреЛ Microsoft рд╕реЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдкреНрд░рд╣рд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЙрдирдХреА рднрд╛рдЧреАрджрд╛рд░реА рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдирд╛ рдерд╛ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХрд┐рддрдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЙрдирдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ: рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдХреЛрдб рдХрдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдмрд╛рдж рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рддреАрди рд░рдгрдиреАрддрд┐рдпрд╛рдБ рдереАрдВ:

рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рдХрд┐рдП рдЧрдП рдереЗред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдЗрд╕ рдЧрдгрдирд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдерд╛ рдХрд┐ рдкрд╣реЗрд▓реА рдХрд╛ рдЖрдЦрд┐рд░реА рдЯреБрдХрдбрд╝рд╛ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдерд╛ред

рдпрджрд┐ рдЖрдк рдмрд╕ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЧреБрдгреЛрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ред рд▓реЗрдХрд┐рди, рдпрджрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдкрд╣рд▓реА рд░рдЪрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рд╕реВрдЪреА рджреЗрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЧреБрдг, рддреЛ рд╡реЗ рдЬрд┐рд╕ рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рд╡рд╣ рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рднрдбрд╝рдХрд╛рдиреЗ рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП RuntimeBinder рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХреНрд╕реЗрд╕рд░ рд╕рд╣реА рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╕реВрдЪреА рдореЗрдВ рдЬрд╛рдПред рдПрдХреНрд╕реЗрд╕рд░ рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреЗ рдкрд╣рд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рдореНрди рдХреЛрдб:

 typeof(Log).GetEvents(); typeof(Log).GetProperties(); new Log(); 

рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЗрд╕ рдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рд╕реВрдЪреА рдкрд╣рд▓реЗ рдЗрд╡реЗрдВрдЯ рдПрдХреНрд╕реЗрд╕рд░реНрд╕, рдлрд┐рд░ рдЧреБрдгреЛрдВ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИред рдФрд░ рдлрд┐рд░, рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рд╕реЗ рднрд░ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред

рдЪреМрдЦрдЯреЗ рдореЗрдВ рдЕрдВрддрд░


рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдЙрди рдорд╢реАрдиреЛрдВ рдкрд░ рдХреНрдпреЛрдВ рджрд┐рдЦрд╛рдИ рджреА рдЬрд╣рд╛рдВ 4 рдлреНрд░реЗрдорд╡рд░реНрдХ рдерд╛, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдкрд░ рдирд╣реАрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ 4 рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, 4.5 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ Microsoft.CSharp.dll рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 4 рд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдереЛрдбрд╝рд╛: рд╕рдВрд╕реНрдХрд░рдг 4 рдореЗрдВ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ 4.0.30319.1 рд╣реИ , рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 4.5 рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 4.0-30319.17929 рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВред

рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╡рд┐рдзрд┐ рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд╛рдлреА рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдерд╛:

 MethodInfo[] methods = type.GetMethods(BindingFlags.Instance ...); for (int i = 0; i < methods.Length; i++) { if (methods[i].MetadataToken == methodInfo.MetadataToken) ... 

рдпрд╣ рдерд╛:

 MethodInfo[] methods = type.GetMethods(BindingFlags.Instance...); for (int i = 0; i < methods.Length; i++) { if (methods[i].MetadataToken == methodInfo.MetadataToken && !(methods[i].Module != methodInfo.Module)) ... 

рддреЛ, рджреЛрд╣рд░реЗ рдирдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрдЧ 4.5 рдврд╛рдВрдЪреЗ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо


рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдирд┐рдХрд▓рд╛, рдРрд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рдЧреБрдг рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдШрдЯрдирд╛рдПрдВ рднреА рд╣реИрдВред рдФрд░ рдХреБрдЫ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдФрд░ рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕ рдХреЗ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ - рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рд░рд╛рд╢рд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ RuntimeBinder рдЧрд▓рдд рд╡рд┐рдзрд┐ рдЪреБрдирддрд╛ рд╣реИ рддреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:

рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд░рд╣рдирд╛ рд╣реИ?


Connect.microsoft.com рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рдереА, рдФрд░ рдЬреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, 4 рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд┐рд╕реНрд╕рд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╕рдореВрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди, рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реБрдИ рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реБрд░реВ рдореЗрдВ рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рд╡реЗ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЬреАрдм рд╣реИред

рдЦреБрдж рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдлрд┐рд▓рд╣рд╛рд▓ MSBuild рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рдзрд┐ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП Mono.Cecil рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреНрд░рдо рдХреА рддрд▓рд╛рд╢ рдХрд░рддреА рд╣реИ, рдЙрдирдХреЗ рдСрдкрд░реЗрдВрдбреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ, рдЙрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдЬреЛ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рддреЛ рд░рдирдЯрд╛рдЗрдордмрд╛рдЗрдВрдбрд░ рдЦреЛрдЬреЗрдЧрд╛ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЙрд▓ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг 4.5 рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ), рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЧрддрд┐рд╢реАрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЯреЗрд╕реНрдЯ рдХреЗрд╕
рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЛрдб .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг 4.0 рд╕реНрдерд╛рдкрд┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рдм рдХреБрдЫ рдКрдкрд░ рдлреНрд░реЗрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдП:
A.cs
 public class A { public void MethodForTokenOffset() {} public event EventHandler Event { add { Console.WriteLine("Event, add");} remove {} } public object this[long id] { get { Console.WriteLine("Indexator, get {0}", id); return new { Name = "ThisIsSomeObject" }; } set { Console.WriteLine("Indexator, set {0}", id); } } } 

AssemblyB
Program.cs
 class Program { static void Main() { typeof(B).GetEvents(); typeof(B).GetProperties(); new B(); Console.ReadLine(); } } 

B.cs
 public class B : A { public B() { try { dynamic obj = new { Handler = new EventHandler((s, e) => Console.WriteLine("EventHandler")), Id = 1L }; MethodForEvent(obj.Handler); var result = MethodForIndexator(obj.Id); Console.WriteLine("Method result, {0}", result); MethodForProperty(obj.Id); } catch (Exception e) { Console.WriteLine(e); } } public void MethodForEvent(EventHandler handler) { Console.WriteLine("MethodForEvent, {0}", handler); } public void StubMethodForOffset() { } public long MethodForIndexator(long id) { Console.WriteLine("MethodForIndexator, {0}", id); return 0; } public void MethodForProperty(long id) { Console.WriteLine("MethodForProperty, {0}", id); } } 


Source: https://habr.com/ru/post/In191178/


All Articles