WCF рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди .Net рдХреЛрд░ HttpClientFactory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░

SOAP рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WCF 4.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░рд╛ рдЙрддреНрдкрд╛рдж .Net Core 2.2 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗ рджреМрд░рд╛рди, рдбреЗрдЯрд╛ рдмрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЙрдЪреНрдЪ рднрд╛рд░ рджреЗрдЦрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреАрдВред рдирддреАрдЬрддрди, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕рдХреНрд░рд┐рдп рдпреМрдЧрд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реИред

рдХрдиреЗрдХреНрд╢рди рдердХрд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдпрд╛ рдмрд╛рд╣рд░реА рдпрд╛ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрд▓рдмреНрдз рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреЛ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:

тАв рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐,
тАв рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░рдирд╛ред

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



рд╡рд┐рдЪрд╛рд░


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

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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


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

services.AddHttpClient("ClientName"); 

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

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

рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, WCF рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред



рд╣рдо CustomEndpointBehaviour рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

 public class CustomEndpointBehavior : IEndpointBehavior { private readonly Func<HttpMessageHandler> _httpHandler; public CustomEndpointBehavior(IHttpMessageHandlerFactory factory) { //       _httpHandler = () => factory.CreateHandler("ClientName"); } public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters) { //      bindingParameters.Add(new Func<HttpClientHandler, HttpMessageHandler>(handler => _httpHandler())); } public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime) { } public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) { } public void Validate(ServiceEndpoint endpoint) { } } 

рдЗрд╕рдХреЗ рдмрд╛рдж, WCF рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╣рдорд╛рд░рд╛ EndpointBehavior рдЬреЛрдбрд╝реЗрдВред

 var httpMessageHandler = serviceProvider.GetRequiredService<IHttpMessageHandlerFactory>(); var client = new WcfClient(); client.Endpoint.EndpointBehaviors.Add(new CustomEndpointBehavior(httpMessageHandler)); 

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

рдХрд╕реМрдЯреА


рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ 100 рд╕рдорд╛рди рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗред рдирддреАрдЬрддрди, рдПрдХ рдкреВрд▓ рдХреЗ рдмрд┐рдирд╛, рдпреМрдЧрд┐рдХреЛрдВ рдХрд╛ рд╢рд┐рдЦрд░ 53 рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, рдФрд░ рдПрдХ рдкреВрд▓ рдХреЗ рд╕рд╛рде рдпрд╣ 7 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛ред

рдПрдХ рдкреВрд▓ рдХреЗ рдмрд┐рдирд╛ рдХрдиреЗрдХреНрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА:



рдкреВрд▓ рдХрдиреЗрдХреНрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА:



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


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

рд╣рдордиреЗ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕реЗ рдЧрд░реНрдо рд╣реЛрдиреЗ рдкрд░ рд▓реЗрдВ)

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


All Articles