рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рддрд╣рдд IoC рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдкреНрд░рджрд░реНрд╢рди рддреБрд▓рдирд╛

рдЕрдЪреНрдЫрд╛ рд╕рдордп, рдкреНрд░рд┐рдп harazhiteli!

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

рдСрдЯреЛрдлреИрдХ 2.5.2
Caliburn.Micro v1.3.1 (рдШрдЯрдХ SimpleContainer)
рдлрдВрдХ 1.0
рдорд╛рдЗрдХреНрд░реЛрдЗрдХ 1.0
рдиреАрдВрдЬреЗ реи.реи.рез 2.2
TinyIoC

рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ TinyIoC C # рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рд╣реИ (рд░рд╛рд╕реНрддреЗ рдореЗрдВ VB)ред рдЗрд╕рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ WP7 рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛
'System.Type' рдореЗрдВ 'FindInterfaces' рдХреА рдХреЛрдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ 'FindInterfaces' рдЯрд╛рдЗрдк рдХреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ 'System.Type' рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рд░реЗрдлрд░реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЧрд╛рдпрдм рд╣реИрдВ?)

рд╕рд░рд▓ рд▓рд╛рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛
if (!registerImplementation.FindInterfaces((t, o) => t.Name == registerType.Name, null).Any()) 

рд▓рд╛рдЗрди рдкрд░
 if (registerImplementation.GetInterface(registerType.Name, false) == null) 


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

рддреАрди рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдереАред рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдереЗ: рдПрдХрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд▓рд╛ (рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг), рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд╖рдгрд┐рдХ (рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣рд░ рдмрд╛рд░ рдЬрдм рдХрдВрдЯреЗрдирд░ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ) рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрд┐рдирд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИрдВ, рддреАрд╕рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рджреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИред
1 рдорд┐рд▓рд┐рдпрди рдмрд╛рд░ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╕реНрдЯреЙрдкрд╡реЙрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордп рдорд╛рдкрд╛ рдЧрдпрд╛ рдерд╛ред

рдкрд░рд┐рдгрд╛рдо



рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдордп рдХреЛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

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


рдЙрдЪреНрдЪ рдмрд╛рд░, рдХрдВрдЯреЗрдирд░ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдмреБрд░рд╛ рд╣реЛрдЧрд╛ред

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





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


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

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


All Articles