рд╕реНрд░реЛрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ .рдиреЗрдЯ рдмрд╛рдЗрдирд░реА рдХреНрд░рдорд╛рдВрдХрди рдпрд╛ рдмрд╛рдЗрдирд░реАрдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреИрд╕реЗ рдХрд░реЗрдВ

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

рдкрд░рд┐рдЪрдпред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


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

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

рд╕реНрдЯреЗрдЬ 0. рд░рд┐рдлрд▓реЗрдХреНрдЯрд░рд┐рдВрдЧред рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрд░реЗрд╢рд╛рди рдореБрд╕реАрдмрдд


рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рддрд░реНрдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ 4-рдХреЙрд▓рдо рд▓реЗрдмрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рддрд░реНрдХ рдПрдХ рдЕрд▓рдЧ рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рдЧрд╛рдбрд╝реА рдФрд░ рдПрдХ рдмрдбрд╝реА рдЯреНрд░реЙрд▓реА рд╣реИ), рдФрд░ рдкрд╛рд░реНрд╕рд░ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо:

  1. рд╕реАрдзреА рдирдХрд▓ рд╕реЗ рдмрдЪреЗрдВ
  2. рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рд╕реЗ рд░рдХреНрд╖рд╛ рдХрд░рдирд╛

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

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

рдпреЗ рдкреНрд░рдХрд╛рд░, рдЬрд┐рдирд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛, рд╣рдордиреЗ "рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛" рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╡реЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдереЗред

рдЪрд░рдг 1. рд╡рд░реНрдгрдиред рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рдпрд╛рдж рд░рдЦреЗрдВ


рдЙрдкрд░реЛрдХреНрдд рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА
[A] Namespace.TypeA рдХреЛ [B] Namespace.TypeA рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЯрд╛рдЗрдк рдП рдХреА рдЙрддреНрдкрддреНрддрд┐ 'рдЕрд╕реЗрдВрдмрд▓реА.рдРрдкреНрд▓рд┐рдХреЗрд╢рди', рд╡рд░реНрдЬрди = 1.0.0.0, рдХрд▓реНрдЪрд░ = рдиреНрдпреВрдЯреНрд░рд▓, PublicKeyToken = null 'рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ' рдбрд┐рдлрд╝реЙрд▓реНрдЯ 'рд╕реНрдерд╛рди рдкрд░ рд╣реБрдИ ...'ред рдЯрд╛рдЗрдк B рдХреА рдЙрддреНрдкрддреНрддрд┐ 'Assmbley.Portal, рд╕рдВрд╕реНрдХрд░рдг = 1.0.0.0, рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = null' рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ' рд╕реНрдерд╛рди рдкрд░ рд╣реБрдИ рд╣реИред
рдмрд╣реБрдд рдкрд╣рд▓реЗ Google рд▓рд┐рдВрдХ рдиреЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдерд╛ рдХрд┐ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реАрдлрд╝реЙрд░реНрдореЗрдЯрд░ рди рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рднреА рдЬрд╛рдирдХрд╛рд░реА рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреВрд░реНрдг рдирд╛рдо рдореЗрдВ рд╡рд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЬреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╡рд╣ рддрд╕реНрд╡реАрд░ .Net рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

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

рдордВрдЪ 2. рдореБрдЦреНрдпред рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреНрд░рдордмрджреНрдзрддрд╛


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

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

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

public abstract Type BindToType(String assemblyName, String typeName); 

рдЬрд┐рд╕рдореЗрдВ рдЖрдк рджрд┐рдП рдЧрдП рд╢рд░реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрд╛рдЗрдирд░реАрдлреЙрд░рдореИрдЯрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рдмрд╛рдЗрдВрдбрд░ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рд╡рд┐рд╡рд░рдг рдмрдирд╛ рд╣реБрдЖ рд╣реИ (рдКрдкрд░ рджреЗрдЦреЗрдВ)ред

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

 var defaultBinder = new BinaryFormatter().Binder 

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

  var assembly = Assembly.Load(assemblyName); return FormatterServices.GetTypeFromAssembly(assembly, typeName); 

рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╡рд╣реА рддрд░реНрдХ рджреЛрд╣рд░рд╛рдпрд╛ред

рдпрд╣рд╛рдБ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ

 public class MyBinder : SerializationBinder { public override Type BindToType(string assemblyName, string typeName) { if (assemblyName.Contains("<ObligatoryPartOfNamespace>") ) { var bindToType = Type.GetType(typeName); return bindToType; } else { var bindToType = LoadTypeFromAssembly(assemblyName, typeName); return bindToType; } } private Type LoadTypeFromAssembly(string assemblyName, string typeName) { if (string.IsNullOrEmpty(assemblyName) || string.IsNullOrEmpty(typeName)) return null; var assembly = Assembly.Load(assemblyName); return FormatterServices.GetTypeFromAssembly(assembly, typeName); } } 

рдпрд╛рдиреА рдпрд╣ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирд╛рдорд╕реНрдерд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ - рд╣рдо рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рд╕реЗ рдЯрд╛рдЗрдк рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╕рд┐рд╕реНрдЯрдо рдЯрд╛рдЗрдк - рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ

рдпрд╣ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ: рд╣рдорд╛рд░рд╛ рдкреНрд░рдХрд╛рд░ рдЖрддрд╛ рд╣реИ - рд╣рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реБрд░реНрд░реЗ! рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрддрд╛ рд╣реИ - рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд╡рд░реНрдЪреБрдЕрд▓ рд╢реИрдВрдкреЗрди рдЦреЛрд▓реЗрдВ ...

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

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

  /// <summary> /// The types that may be changed to local /// </summary> protected static IEnumerable<Type> _changedTypes; static MyBinder() { var executingAssembly = Assembly.GetCallingAssembly(); var name = executingAssembly.GetName().Name; _changedTypes = executingAssembly.GetTypes().Where(t => t.Namespace != null && !t.Namespace.Contains(name) && !t.Name.StartsWith("<")); //!t.Namespace.Contains(name) - .     ,         // "<'      -     } private static string CorrectTypeName(string name) { foreach (var changedType in _changedTypes) { var ind = name.IndexOf(changedType.FullName); if (ind != -1) { var endIndex = name.IndexOf("PublicKeyToken", ind) ; if (endIndex != -1) { endIndex += +"PublicKeyToken".Length + 1; while (char.IsLetterOrDigit(name[endIndex++])) { } var sb = new StringBuilder(); sb.Append(name.Substring(0, ind)); sb.Append(changedType.AssemblyQualifiedName); sb.Append(name.Substring(endIndex-1)); name = sb.ToString(); } } } return name; } /// <summary> /// look up the type locally if the assembly-name is "NA" /// </summary> /// <param name="assemblyName"></param> /// <param name="typeName"></param> /// <returns></returns> public override Type BindToType(string assemblyName, string typeName) { typeName = CorrectTypeName(typeName); if (assemblyName.Contains("<ObligatoryPartOfNamespace>") || assemblyName.Equals("NA")) { var bindToType = Type.GetType(typeName); return bindToType; } else { var bindToType = LoadTypeFromAssembly(assemblyName, typeName); return bindToType; } } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ PublicKeyToken рдЯрд╛рдЗрдк рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЕрдВрддрд┐рдо рд╣реИред рд╢рд╛рдпрдж рдпрд╣ 100% рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдореБрдЭреЗ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдирд╣реАрдВ рдорд┐рд▓реЗ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рдкрддреНрд░ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐
"System.Collections.Generic.Dictionary`2 [[SomeNamespace.CustomType, Assembley.Application, рд╕рдВрд╕реНрдХрд░рдг = 1.0.0.0, рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = null], [System.Byte [], mscorlib, рд╕рдВрд╕реНрдХрд░рдг = 4.0.0.0, рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = b77a5c561934e089]] ┬╗

рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
"System.Collections.Generic.Dictionary`2 [[SomeNamespace.CustomType, Assembley.Portal, рд╕рдВрд╕реНрдХрд░рдг = 1.0.0.0, рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = null], [System.Byte [], mscorlib, рд╕рдВрд╕реНрдХрд░рдг = 4.0.0.0, рд╕рдВрд╕реНрдХреГрддрд┐ = рддрдЯрд╕реНрде, PublicKeyToken = b77a5c561934e089]] ┬╗

рдЕрдм рд╕рдм рдХреБрдЫ рдЕрдВрдд рдореЗрдВ "рдПрдХ рдШрдбрд╝реА рдХреА рддрд░рд╣" рдХрд╛рдо рдХрд┐рдпрд╛ред рдорд╛рдореВрд▓реА рддрдХрдиреАрдХреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдереАрдВ: рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рддреЛ рдЬрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдордиреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдерд╛, рд╡реЗ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд▓рд┐рдВрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдереЗред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЗрди рд╕рднреА рдиреГрддреНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рдкрддреНрд░ рдХрд╛ рдПрдХ рд╕рд╢рд░реНрдд рд╕рдВрдХрд▓рди рддрдВрддреНрд░

 BinaryFormatter binForm = new BinaryFormatter(); #if EXTERNAL_LIB binForm.Binder = new MyBinder(); #endif 

рддрджрдиреБрд╕рд╛рд░, рдкреЛрд░реНрдЯрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╣рдо рдореИрдХреНрд░реЛ EXTERNAL_LIB рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ - рдирд╣реАрдВ

"рдЧреИрд░-рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░"


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЬрд▓реНрджреА рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдорд┐рд╕рдХреИрд░реЗрдЬ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЦрд░реНрдЪ рд╣реБрдИ: рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд┐рд░реНрдл рдбрд┐рд╕рд┐рд╢рдирд░реА рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рддрд╛ рд╣реВрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рд╢рдмреНрджрдХреЛрд╢ рдмрди рдЧрдпрд╛, рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп "рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд" рднреА рд╣реЛ рдЧрдпрд╛ред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЖрдк рдмрд╛рдЗрдирд░реАрдлрд╝реЙрд░реНрдореИрдЯрд░ рдХреЛ рдзреЛрдЦрд╛ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ , рдФрд░ рдореИрдВрдиреЗ рд╢рдмреНрджрдХреЛрд╢ рд╡рд╛рд░рд┐рд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╣рддрд╛рд╢ рдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдПред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рд▓рдЧрднрдЧ рд╕рдордп рдореЗрдВ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдФрд░ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рддрдВрддреНрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реМрдЯ рдЖрдпрд╛ рдФрд░, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ: рдЖрдкрдХреЛ рдЕрднреА рднреА KeyValuePair / TKey, TValue>, рддреБрд▓рдирд┐рддреНрд░ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рднреА рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЧрдП рд╣реИрдВред Binder'a


рдпреЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХреНрд░рдорд┐рдХ рд░реЛрдорд╛рдВрдЪ рд╣реИрдВред рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

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


All Articles