рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕реАрдПрд▓рдЖрд░ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдЯрд╛рдЗрдк рдХрд░реЗрдВ

рд╡рд┐рдВрдбреЛрдЬ 8 рдХреА рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирдП рд╡рд░реНрдЧ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ - рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдоред WinRT рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдЯреЛрд░ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЕрдирд╡рд╛рдВрдЯреЗрдб C / C ++ рдХреЛрдб, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдФрд░ C # рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рдмреЗрд╕рд┐рдХ рдореЗрдВ рднреАред

рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдореЗрдЯрд╛рдбреЗрдЯрд╛

рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, WinRT рдШрдЯрдХ COM (рдШрдЯрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓) рдШрдЯрдХ рд╣реИрдВ, рдЬреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЕрдм рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЗрдЯрд╛рдбреЗрдЯрд╛ * .winmd рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рдФрд░ .NET рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ ECMA-335 рдорд╛рдирдХ рдХреА рдзрд╛рд░рд╛ 2 (рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде) рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдорд╛рдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдЯреВрд▓ (рдЬреИрд╕реЗ ildasm.exe , рдСрдмреНрдЬреЗрдХреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, WinMD рдлрд╝рд╛рдЗрд▓ рдХреЛ ildasm.exe рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рджреЗрдЦрдирд╛ рдорд╛рдирдХ рдкреНрд░рдмрдВрдзрд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдХрдИ рдЕрдВрддрд░ рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХрд┐ WinMD рдлрд╛рдЗрд▓реЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рдордзреНрдпрд╡рд░реНрддреА рднрд╛рд╖рд╛ (IL) рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВред рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдмрдВрдзрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, WinRT API рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рдПрдкреАрдЖрдИ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреА рд╣реИрдВред рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ, рдХреЙрдорди рд▓реИрдВрдЧреНрд╡реЗрдЬ рд░рдирдЯрд╛рдЗрдо (рд╕реАрдПрд▓рдЖрд░) рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Windows.Foundation.winmd рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ (% WinDir% \ System32 \ WinMetadata рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд) рдореЗрдВ рдЖрдк рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХреА Windows.Foundation.Collections.ProperadSet рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдирд┐рдХрд╛рдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд░ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдЫрд╡рд┐

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

рдЫрд╡рд┐

рдпрд╣ рдХреАрд╡рд░реНрдб рд╕рдВрд╡реЗрджреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЯрд╛рдЗрдк рдбреЗрдлрд┐рдирд┐рд╢рди (рдЯрд╛рдЗрдкрдбрд┐рдл) рдПрдХ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рдХрд╛рд░ рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрд▓ рдХреЛ WinRT API рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

WinRT рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде CLR рдЗрдВрдЯрд░реЗрдХреНрд╢рди

CRL, Runtime Callable Wrapper (RCW) рдФрд░ COM Callable Wrapper (CCW) рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ COM рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реАрдПрд▓рдЖрд░ рдореЗрдВ, рдПрдХ WinRT рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ RCW рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ WinRT рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб RCW рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдФрд░ WinRT рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

рдЫрд╡рд┐

рдЗрд╕реА рддрд░рд╣, рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ, рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╕реАрд╕реАрдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред Windows рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдмрдВрдзрд┐рдд рдЗрдХрд╛рдИ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП CCW рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рддрд╛ рд╣реИред

WinRT рдкреНрд░рдХрд╛рд░ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб

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

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдЕрднреА рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╢реНрд░реЗрдгреА рд╣реИ рдЬреЛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдЧреИрд░-рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпреЗ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ WinRT рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ System.MulticastDelegate рдХреЗ рд╕рд╛рде рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рд╣реИред

рдЫрд╡рд┐

рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХреНрд╖реЗрдкрдг

рдЬрдм CLR рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдкреНрд░рджрд░реНрд╢рд┐рдд) WinRT рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рджреЛ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ:

рддреЛ, рд╕реАрдПрд▓рдЖрд░ рдЖрдИрд╡реАрдПрд╕ <рдЯреА> рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдИрд╡реАрдХреЗрдЯрд░ <рдЯреА> рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЖрдИрд╡реАрдПрд╕ <рдЯреА> рд╕реАрдПрд▓рдЖрд░ рдХреА рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдирд┐рдЬреА рджрд╛рдпрд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдирддрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдЖрдИрд╡реАрдЖрд░рдПрдХреНрд╕рдПрдХреНрд╕рдПрд▓рдПрд▓.рдХрдВрдЯреНрд░реЛрд▓s.рдпреВрдЗрдореЗрдВрдЯрдореЗрдВрдЯрдХреЙрд▓рдХреНрд╢рди рдкреНрд░рдХрд╛рд░, рдЬреЛ рдЖрдИрд╡реАрдПрдХреНрдЯрд░ <UIElement> рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд╕реАрдПрд▓рдЖрд░ рджреНрд╡рд╛рд░рд╛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред IVector <T> рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ IList <T> рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдореЗрдВ UIElementCollection IList <UIElement> рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗред
рдЖрдорддреМрд░ рдкрд░, ildasm.exe рдХрд┐рд╕реА рднреА рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдмрд┐рдирд╛ WinMD рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдХрдЪреНрдЪрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдПрдХ WinMD рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ / рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдПрд▓рдЖрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░

WinRT рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рд╡рд░реНрдЧреЛрдВ рдХреЛ IInspectable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ IUnogn рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдЬреЛ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ) рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, .NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рд╕рднреА WinRT рдкреНрд░рдХрд╛рд░ System.Object рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджрд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рд╡рд┐рд░рд╛рд╕рдд, GetHashCode , рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рддрд░реАрдХреЗред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ CLR рдорд╛рд░реНрд╢рд▓реНрд╕ WinRT рдФрд░ .NET рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рди рдЯрд╛рдЗрдо рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрд░рдЪрдирд╛

WinRT рд╕рдВрд░рдЪрдирд╛, рдорд╣рддреНрд╡рдкреВрд░реНрдг CLR рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕рдореЗрдВ рдореВрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рдЦреБрд▓реЗ рдХреНрд╖реЗрддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп WinRT рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛:

public struct MyStruct { // 'MyStruct' contains non-public field 'MyStruct.i'. // Windows Runtime structures can contain only public fields. private Int32 i; //Windows Runtime structures can contain only fields. public MyStruct(Int32 i) { this.i = i; } //Windows Runtime structures can contain only fields. public void MyFunc() { } } 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, WinRT рд╕рдВрд░рдЪрдирд╛рдПрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╕реАрдПрд▓рдЖрд░ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Windows.Foundation.Point рдХреА рд╕рдВрд░рдЪрдирд╛, Windows.Foundation.Size, рдФрд░ Windows.Foundation.Rect ред

рдкрдВрдХреНрддрд┐рдпрд╛рдВ

WinRT рдореЗрдВ System.String рдкреНрд░рдХрд╛рд░ рдХреЛ HSTRING рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдЬрдм рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ CLR рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ HSTRING рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣, CLR рд░рдирдЯрд╛рдЗрдо рд╡рд┐рдзрд┐ рд╕реЗ рд▓реМрдЯреА рдХрд┐рд╕реА рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ System.String рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - WinRT рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рддрд╛рд░реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред рдЕрд╢рдХреНрдд рдХреЗ рдмрдЬрд╛рдп, String.Empty рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм WinRT рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд▓ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ CLR рдПрдХ ArgumentNullException рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдЖрдк рдХрднреА рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХ WinRT рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдирд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрд╢рдХреНрдд рд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░

WinRT API рдПрдХ рдЕрд╢рдХреНрдд-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Windows.Foundation.IReference <T> рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ CLR рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред Nullable <T> ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ WinMD рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ:

 IReference<bool> Method(IReference<int> i); 

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

 Nullable<bool> Method(Nullable<int> i); 


рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ

рдХреЗрд╡рд▓ WinRT- рд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ WinRT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдЧреБрдВрдЬрд╛рдЗрд╢ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рд╣реИрдВ)ред рдЬрдм рдЖрдк Windows рд░рдирдЯрд╛рдЗрдо рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ CCW рдЖрд╡рд░рдг рдореЗрдВ рд▓рдкреЗрдЯреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рддрдм рддрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ WinRT рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ BeginInvoke рдФрд░ EndInvoke рддрд░реАрдХреЗ рдирд╣реАрдВ рд╣реИрдВред

рдШрдЯрдирд╛рдУрдВ

WinRT рдШрдЯрдХ рдХреЗрд╡рд▓ WinRT рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ Windows.Foundation.EventHandler <T> рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ CLR .NET .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рддрд╛ рд╣реИред EventHandler <TEventArgs> рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ред рдЬрдм рдЖрдк рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд╕рджрд╕реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 public event EventHandler<RoutedEventArgs> MyEvent; 

рдлрд┐рд░ рдЬрдм рдХреЛрдб рдХреА рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдХрдВрдкрд╛рдЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:

 private EventRegistrationTokenTable<EventHandler<RoutedEventArgs>> MyEvent; public EventRegistrationToken add_MyEvent(EventHandler<RoutedEventArgs> handler) { return EventRegistrationTokenTable<EventHandler<RoutedEventArgs>> .GetOrCreateEventRegistrationTokenTable(ref MyEvent) .AddEventHandler(handler); } public void remove_MyEvent(EventRegistrationToken token) { EventRegistrationTokenTable<EventHandler<RoutedEventArgs>> .GetOrCreateEventRegistrationTokenTable(ref MyEvent) .RemoveEventHandler(token); } 

рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рдФрд░ рдШрдЯрдирд╛ рд╕реЗ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдПрдХреНрд╕реЗрд╕рд░ рд╡рд┐рдзрд┐ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣рдо ( Delegate.Combine рдФрд░ Delegate.Remove ) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╢реНрд░реЗрдгреА EventRegistrationTokenTable <T> рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ рддрд░реНрдХ рд╕рдВрдЧрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рдЙрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬреЛ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдирдпрд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдиреЗ рдкрд░, EventRegistrationToken рдЯреЛрдХрди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 public void RaiseEvent() { var list = EventRegistrationTokenTable<EventHandler<RoutedEventArgs>> .GetOrCreateEventRegistrationTokenTable(ref MyEvent) .InvocationList; if (list != null) list(this, new RoutedEventArgs()); } public void Main() { var myClass = new MyClass(); var token = myClass.add_MyEvent(Handler); myClass.RaiseEvent(); myClass.remove_MyEvent(token); myClass.RaiseEvent(); } private void Handler(object sender, RoutedEventArgs args) { Debug.WriteLine("event handling"); } 

рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, InvocationList рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдХреЙрд▓ рд╕реВрдЪреА рдореЗрдВ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рднреА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╕рдордп рдФрд░ рддрд╛рд░реАрдЦ

WinRT рдореЗрдВ, Windows.Foundation.DateTime рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ UTC рдореЗрдВ рд╕рдордп рдФрд░ рджрд┐рдирд╛рдВрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред CLR рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ System.DateTimeOffset рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рдореИрдк рдХрд░рддрд╛ рд╣реИ, System.DateTime рдХреЛ рдирд╣реАрдВред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ DateTime рдореЗрдВ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, UTC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ WinRT рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп CLR рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдиреАрдп рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, WinRT рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП DateTimeOffset рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп , рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреЛ UTC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд░рдгрд┐рдпреЛрдВ

WinRT рдПрдкреАрдЖрдИ рдХреЗрд╡рд▓ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдПрдХ рд╕рдВрдХрд▓рди-рд╕рдордп рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛:
 // Arrays in Windows Runtime method signatures must be one dimensional. public int[,] MyFunc() { return new int[5, 5]; } 

рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдореЗрдВ, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рд╕рд░рдгреА рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд▓рд┐рдВрдХ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, WinRT рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рджрд┐рд╢рд╛ рдореЗрдВ рдорд╛рд░реНрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ API System.Runtime.InteropServices.InAttribute рдФрд░ System.Runtime.InteropServices.OutAttribute рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдпрд╛ рд░рд┐рдЯрд░реНрди рдорд╛рдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд░рди рд╕рдордп рдкрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдореЗрдореЛрд░реА рдХреЗ рдмреАрдЪ рдорд╛рд░реНрд╢рд▓реЛрдВ рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рддреЛ рдХреЗрд╡рд▓ [InAttribute] рдпрд╛ рдХреЗрд╡рд▓-рд▓рд┐рдЦрд┐рдд [OutAttribute] рдФрд░ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ [InAttribute], [OutAttribute]ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╣реА рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЗрд╕реЗ рдЕрд╡рд╢реНрдп рдкрдврд╝рд╛ рдпрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕реЗ [InAttribute] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕реЗ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд░рдгреА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЙрд▓рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдПрдХ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рдЬрд┐рд╕реЗ [рдЖрдЙрдЯрдСрдЯрд╡рд░реНрдЯ] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдореВрд▓ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрдЧреНрд░рд╣

рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, CLR рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБ рдХреЛ CCW рдЖрд╡рд░рдг рдореЗрдВ рдкреИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ WinRT API рдореЗрдВ рд▓рд┐рдВрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЖрд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдмрд╛рддрдЪреАрдд рдХреА рд╕реАрдорд╛ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рддрддреНрд╡реЛрдВ рдХреА рдирдХрд▓ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

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

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


All Articles