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

рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдзрд╛рд░ рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдЬреЛ рдХреБрдЫ рднреА рд░рд╣рддрд╛ рд╣реИ, рд╡рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢реЗрд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рдирд╛ рд╣реИред
рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди
рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рддрдВрддреНрд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХрддрд╛ рдПрдкреНрд▓реАрдХреЗрд╢рди рдмреНрд▓реЙрдХ (рдПрдХрддрд╛) рдпрд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╕реА рдлреНрд░реЗрдорд╡рд░реНрдХ (MEF) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп DI рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИред
рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ
UnityBootstrapper рдФрд░
MefBootstrapper рдХреНрд▓рд╛рд╕реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ Unity рдФрд░ MEF рджреЛрдиреЛрдВ рдХреЛ DI рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рдЪрд┐рддреНрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдмреВрдЯрд▓реЛрдбрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдЫ рдХрджрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рд╢реИрд▓ рдирд┐рд░реНрдорд╛рдг
рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ WPF рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ, рд╕реНрдЯрд╛рд░реНрдЯ URI рдХреЛ App.xaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ, рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рдВрдбреЛ рд░реВрдЯ рд╣реИред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореВрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЛ App.xaml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреАрдЫреЗ рдХреЛрдб рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд▓реЛрдбрд░ рдХреЛ рд╕реНрд╡рдпрдВ рд╢реЗрд▓ рдпрд╛ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╢реЗрд▓ рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рдмрдВрдзрдХ, рдЬрд┐рд╕реЗ рд╢реЗрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░рдореБрдЦ рдирд┐рд░реНрдгрдп
рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛:
- рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ MEF, рдпреВрдирд┐рдЯреА рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп DI рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕ рдмреВрдЯрд▓реЛрдбрд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЖрдкрдХреЛ рдЪрдпрдирд┐рдд рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдмреВрдЯрд▓реЛрдбрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрд╛ рдирд╣реАрдВред
- рдЖрдкрдХреЛ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд░реЗрдВрдЧреЗред рдЙрдиреНрд╣реЗрдВ рднреА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрд░реНрдирд▓рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдХреЛрдб рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╛ рдПрдХреНрд╕рдПрдПрдордПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдЕрдЧрд▓рд╛, рд╣рдо рдЗрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдзрд╛рд░ рдкрд░рд┐рджреГрд╢реНрдп
рдПрдХ рдмреВрдЯ рдЕрдиреБрдХреНрд░рдо рдмрдирд╛рдирд╛ рдЖрдкрдХреЗ рдкреНрд░рд┐рдЬреНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрд╣ рдЦрдВрдб рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдПрдХ рд░реИрдкрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдПрдХ рдбреАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╕реНрддрд░реАрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдФрд░ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдмрдирд╛рдирд╛
рдпрджрд┐ рдЖрдк рдпреВрдирд┐рдЯреА рдпрд╛ рдПрдордИрдПрдл рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рдмреВрдЯрд▓реЛрдбрд░ рдмрдирд╛рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ
MefBootstrapper рдпрд╛
UnityBootstrapper рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░
CreateShell рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рд╣реЛрдЧрд╛ ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рд░рдг рд╡рд░реНрдЧ рдХреЛ
рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░рдВрднрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
CreateShell рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
CreateShell рд╡рд┐рдзрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреНрд░рд┐рдЬреНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╡рд┐рдВрдбреЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢реЗрд▓ рдЖрдорддреМрд░ рдкрд░
рдореЗрдирд╡рд┐рдВрдбреЛ рдпрд╛
рдореЗрдирдкреЗрдЬ рд╣реИ ред рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╢реЗрд▓ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдХреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдкреНрд░рд┐рдЬреНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдЖрдк рдпрд╛ рддреЛ рд╢реЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
ServiceLocator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
protected override DependencyObject CreateShell() { return ServiceLocator.Current.GetInstance<Shell>(); }
рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдЕрдХреНрд╕рд░ рджреЗрдЦрддреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдЯрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрдЬрд╛рдп ServiceLocator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ServiceLocator рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЪрдпрдирд┐рдд рдХрдВрдЯреЗрдирд░ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╕реНрд╡рдпрдВ рднреА рдХрдВрдЯреЗрдирд░ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд┐рд╕рд▓реЛрдХреЗрдЯрд░ рдХрд╛ рдирд╣реАрдВред
рдЖрд░рдВрднрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
рд╢реЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░рдВрднрд┐рдХ рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╢реЗрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрдк WPF рдпрд╛ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП,
InitializeShell рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╢реЗрд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
protected override void InitializeShell() { Application.Current.RootVisual = Shell; }
рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдПрдкреАрдкреА рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯреНрд╕ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
protected override void InitializeShell() { Application.Current.MainWindow = Shell; Application.Current.MainWindow.Show(); }
InitializeShell рдХрд╛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХрд┐ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рди рдХрд░реЗрдВред
рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ рдмрдирд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдк рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рдХреИрдЯрд▓реЙрдЧ рдмрдирд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рд┐рдЬреНрдо
IMODuleCatalog рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛
рд▓рдЧрд╛рдпрд╛ рдЬрд╛
рд╕рдХреЗ рдХрд┐ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдХрд┐рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВред
Bootstrapper рд╡рд░реНрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд
ModuleCatalog рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА
CreateModuleCatalog рд╡рд░реНрдЪреБрдЕрд▓ рдкрджреНрдзрддрд┐ рдХрд╛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдЖрдзрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
ModuleCatalog рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐
рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯрдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░ рд╕реЗ рдПрдордУрдПрдл рдХреЗ рд╕рд╛рде рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
protected override IModuleCatalog CreateModuleCatalog() {
UnityBootstrapper рдФрд░
MefBootstrapper рджреЛрдиреЛрдВ
рд╡рд░реНрдЧреЛрдВ рдореЗрдВ, Run рд╡рд┐рдзрд┐
CreateModuleCatalog рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рджрд┐рдП рдЧрдП рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЧ рдХреЗ
ModuleCatalog рдЧреБрдг рд╕реЗрдЯ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЕрдзреНрдпрд╛рдп 4, "рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕" рджреЗрдЦреЗрдВред
DI рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреЛрдиреЛрдВ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдХрдВрдЯреЗрдирд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди, рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдВ рдЗрд╕рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреА рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ рд░рдЪрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред
рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрд╡рд╛рдПрдВ
рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдореВрд▓ рдЧреИрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред | рд╡рд┐рд╡рд░рдгред |
---|
IModuleManager , рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдмрдВрдзрдХ | рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред |
IModuleCatalog , рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ | рдЖрд╡реЗрджрди рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред |
IModuleInitializer , рдореЙрдбреНрдпреВрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ | рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред |
IRegionManager , рдХреНрд╖реЗрддреНрд░ рдкреНрд░рдмрдВрдзрдХ | рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдФрд░ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреГрд╢реНрдп рд▓реЗрдЖрдЙрдЯ рдХрдВрдЯреЗрдирд░ рд╣реИрдВред |
IEventAggregator , рдЗрд╡реЗрдВрдЯ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ | рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╢рд┐рдерд┐рд▓ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ред |
ILoggerFacade | рдЬрд░реНрдирд▓рд┐рдВрдЧ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдгред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЕрдкрдирд╛ рд▓реЙрдЧрд┐рдВрдЧ рддрдВрддреНрд░ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рд░реЗрдлрд░реЗрдВрд╕ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди (рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рдЖрд░рдЖрдИ) рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЙрдЧрд┐рдВрдЧ рдПрдкреНрд▓реАрдХреЗрд╢рди рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд▓реЙрдЬрд┐рдХ рд▓реЙрдЧрд░ рдПрдбреЗрдкреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЙрдЧрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд░рди рд╡рд┐рдзрд┐ рдореЗрдВ CreateLogger рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рд╣реИред рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдФрд░ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ CreateLogger рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред |
IServiceLocator | рдХрдВрдЯреЗрдирд░ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред |
рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдПрдВ
рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рдЖрд░рдЖрдИ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИред рдЙрдиреНрд╣реЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХреНрдпрд╛ рд╕реЗрд╡рд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рдЖрд░рдЖрдИ рдореЗрдВ рд╕реЗрд╡рд╛ред | рд╡рд┐рд╡рд░рдгред |
---|
IMarketFeedService | рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ (рдЧрд▓рдд) рдмрд╛рдЬрд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реЗрд╡рд╛ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд┐рддрд┐рд╕реБрдорд░реА рдкреЗрд╕реЗрдВрдЯреЗрд╢рдирдореЙрдбрд▓ рд╕реНрдерд┐рддрд┐ рд╕реНрдХреНрд░реАрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред |
IMarketHistoryService | рдЪрдпрдирд┐рдд рдлрдВрдб рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрдВрдбрд▓рд╛рдЗрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЬрд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред |
IAccountPositionService | рдПрдХ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдореЗрдВ рдзрди рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред |
IOrdersService | рдЗрд╕рдореЗрдВ рдЦрд░реАрдж / рдмрд┐рдХреНрд░реА рдХреЗ рдЖрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред |
INewsFeedService | рдЪрдпрдирд┐рдд рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдЪрд╛рд░ рдкреЛрд╕реНрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред |
IWatchListService | рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рдЖрдЗрдЯрдо рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдХрдм рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред |
рдкреНрд░рд┐рдЬреНрдо, рдпреВрдирд┐рдЯреАрдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░ рдФрд░ рдореЗрдлрдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░ рдореЗрдВ рджреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╡реНрдпреБрддреНрдкрдиреНрди рдмреВрдЯ рд▓реЛрдбрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдорд╛рди рдЪрд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
UnityBootstrapper рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
UnityBootstrapper рд╡рд░реНрдЧ рдХрд╛
CreateContainer рддрд░реАрдХрд╛ рдмрд╕
UnityContainer рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рджреЗрддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдзрд┐ рдЖрднрд╛рд╕реА рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд╕рдВрднрд╡рддрдГ рддрджрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
UnityBootstrapper рдореЗрдВ
ConfigureContainer рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд┐рдЬреНрдо рдЖрдзрд╛рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА
рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣, рдореЙрдбреНрдпреВрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
protected virtual void ConfigureContainer() { ... if (useDefaultConfiguration) { RegisterTypeIfMissing(typeof(IServiceLocator), typeof(UnityServiceLocatorAdapter), true); RegisterTypeIfMissing(typeof(IModuleInitializer), typeof(ModuleInitializer), true); RegisterTypeIfMissing(typeof(IModuleManager), typeof(ModuleManager), true); RegisterTypeIfMissing(typeof(RegionAdapterMappings), typeof(RegionAdapterMappings), true); RegisterTypeIfMissing(typeof(IRegionManager), typeof(RegionManager), true); RegisterTypeIfMissing(typeof(IEventAggregator), typeof(EventAggregator), true); RegisterTypeIfMissing(typeof(IRegionViewRegistry), typeof(RegionViewRegistry), true); RegisterTypeIfMissing(typeof(IRegionBehaviorFactory), typeof(RegionBehaviorFactory), true); } }
рд▓реЛрдбрд░ рдХрд╛
RegisterTypeIfMissing рд╡рд┐рдзрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрд╡рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрдВрдЬреАрдХрд░рдг рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рднрд╛рд░рд┐рдд
рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдХреЛрдИ рднреА рд╡рд┐рдзрд┐,
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЧреБрдЬрд░рддреА
рд╣реИ ред рдЖрдк
рдХреЙрдиреНрдлрд┐рдЧреЛрдирдХрдВрдЯреЗрдирд░ рд╡рд┐рдзрд┐ рдХреЛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕реА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЗрд╡реЗрдВрдЯ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ред
рдЯрд┐рдкреНрдкрдгреА
рдпрджрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрдВрдЬреАрдХрд░рдгреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
ConfigureContainer рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдбрд░ рдореЗрдВ рдПрдХ рдУрд╡рд░рд░рд╛рдЗрдб рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ
QuickFartBootstrapper рд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рдХреЗ рд▓рд┐рдП WPF (рдПрдХрддрд╛ рдХреЗ рд╕рд╛рде) QuickStart рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ,
ModuleTracker рдкреНрд░рдХрд╛рд░ рдХреЛ рдареЛрд╕
IModuleTracker рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░
CallbackLogger рдХреЛ рдПрдХрддрд╛ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ
CallbackLogger рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
protected override void ConfigureContainer() { base.ConfigureContainer(); this.RegisterTypeIfMissing(typeof(IModuleTracker), typeof(ModuleTracker), true); this.Container.RegisterInstance<CallbackLogger>(this.callbackLogger); }
MefBootstrapper рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
MefBootstrapper рд╡рд░реНрдЧ рдХреА
CreateContainer рд╡рд┐рдзрд┐ рдХрдИ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣
рдЕрд╕реЗрдВрдмрд▓реАрдХреНрд░рд╛рдлреНрдЯ рдФрд░
рдХреИрдЯрд▓реЙрдЧ ExportProvider рдмрдирд╛рддрд╛ рд╣реИред
рдХреИрдЯрд▓реЙрдЧрдкреЛрд░реНрдЯрдкреЛрд░реНрдЯрдкреНрд░реЛрдлрд╛рдЗрдбрд░ рдореЗрдлреЗрдХреНрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдЕрд╕реЗрдВрдмрд▓реА
рдХреЛ рдкреНрд░рд┐рдЬреНрдо рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рджрд╛рди
рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рдПрдХреНрд╕рдкреЗрд░рд┐рдореЗрдВрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддрдм
CreateContainer рдХреИрдЯрд▓реЙрдЧ ExportProvider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░
рдХрдореНрдкреЛрдЬреЗрдирд░ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рджреЗрддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рдзрд┐ рдЖрднрд╛рд╕реА рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рдЯрд┐рдкреНрдкрдгреА
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рд┐рдЬреНрдо рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред GetCallingAssembly рд╡рд┐рдзрд┐ред
рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
MefBootstrapper рдореЗрдВ
ConfigureContainer рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ рдореВрд▓ рдкреНрд░рд┐рдЬреНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкреНрд░рд┐рдЬрд╝рдо рдмреЗрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред
protected virtual void ConfigureContainer() { this.RegisterBootstrapperProvidedTypes(); } protected virtual void RegisterBootstrapperProvidedTypes() { this.Container.ComposeExportedValue<ILoggerFacade>(this.Logger); this.Container.ComposeExportedValue<IModuleCatalog>(this.ModuleCatalog); this.Container.ComposeExportedValue<IServiceLocator>(new MefServiceLocatorAdapter(this.Container)); this.Container.ComposeExportedValue<AggregateCatalog>(this.AggregateCatalog); }
рдЯрд┐рдкреНрдкрдгреА
MefBootstrapper рдореЗрдВ, рдореВрд▓ рдкреНрд░рд┐рдЬреНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рджреМрд░рд╛рди рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
CreateContainer рдФрд░
ConfigureContainer рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
MefBootstrapper MEF рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ
AggregateCatalog рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реАрдХреЗ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
CreateAggregateCatalog рд╡рд┐рдзрд┐ рдмрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ
AggregateCatalog рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИред
MefBootstrapper рдореЗрдВ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рддрд░рд╣,
CreateAggregateCatalog рд╡рд░реНрдЪреБрдЕрд▓ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
ConfigureAggregateCatalog рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ
AggregateCatalog рдмрд▓ рдореЗрдВ рдЯрд╛рдЗрдк рдкрдВрдЬреАрдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП MEF рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рд╕реЗ QuickStartBootstrapper рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
ModuleA рдФрд░
ModuleC рдХреЛ
AggregateCatalog рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
protected override void ConfigureAggregateCatalog() { base.ConfigureAggregateCatalog();
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
MEF,
AggregateCatalog рдФрд░
AssemblyCatalog рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, MSDN рдкрд░ "рдкреНрд░рдмрдВрдзрд┐рдд рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдУрд╡рд░рд╡реНрдпреВ" рджреЗрдЦреЗрдВ:
http://msdn.microsoft.com/en-us/library/dd460648.aspx ред