рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдирд╛рдо рдЯрдХрд░рд╛рд╡ рдХреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рд╕реА # рдореЗрдВ, рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЕрд░реНрдерд╛рддред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рд╡рд░реНрдЧ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЙрдкрд╕рд░реНрдЧ рджрд░реНрдЬ рдХрд░реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдирд╛рдо рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦрд┐рдд рдХрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рд╕рдорд╛рдирд╛рд░реНрдереА рд╢рдмреНрдж рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рд░реАрд╢рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдЗрд╕ рд╕рд┐рд▓рд╕рд┐рд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреЛрдбрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЙрди рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред (рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)
So. рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:
using b.b2; class Example { MyTest test; }
| using x = b.b2; class Example { x.MyTest test; }
|
рдореЗрд░реА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП, ReSharper- рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ FQN (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рдирд╛рдо) рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛, рдЕрд░реНрдерд╛рддред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ MyTest рд╡рд░реНрдЧ рдирд╛рдорд╕реНрдерд╛рди b.b2 рдФрд░ рдЙрд╕рдХреЗ FQN b.b2.MyTest рдореЗрдВ рд╣реИ
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкрд╣рд▓рд╛ рд╕реВрддреНрд░реАрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
рдЕрдЧрд░ рд╣рдо рдирд╛рдо рд╕реНрдерд╛рди b.b2 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо x рдкрд░рд┐рдЪрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЛрдб рдХреЗ рднрд╛рдЧ рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдпрд╣ рдкреНрд░рдпреЛрдЧ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ: рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрддрд░рд┐рдХреНрд╖ b.b2 рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдкреНрд░рд╡реЗрд╢ FQN рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдкрд╕рд░реНрдЧ xред
рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдПред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдирд╛рдо рд╕реНрдерд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЬрдм рд╣рдо рд╕реАрдзреЗ рдЖрдпрд╛рдд рдХреЛ рдПрдХ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдХреЗ рд╕рд╛рде рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - рд╡рд░реНрдЧреЛрдВ рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛ b.b2 рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред
рдпрд╣ рдерд╛ | рд╣реЛрдЧрд╛ | рдХреА рдЬрд░реВрд░рдд рд╣реИ |
---|
using b.b2; class Example { MyTest test; Example() { test.Ext(); } }
| using x = b.b2; class Example { x.MyTest test; Example() { test.Ext();
| using x = b.b2; class Example { x.MyTest test; Example() { x.Extension.Ext(test); } }
|
рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЬрд┐рд╕ рд░реЗрдХ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рдереА, рдЙрд╕реЗ рдЯреЗрд╕реНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдкрд░ рд░рд┐рдлреИрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ FQN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ рдерд╛ | рд╣реЛрдЧрд╛ | рдХреА рдЬрд░реВрд░рдд рд╣реИ |
---|
using r = b.b2; using b.b2; class Example { r.MyTest test; }
| using r = b.b2; using x = b.b2; class Example { xrMyTest test;
| using r = b.b2; using b.b2; class Example { r.MyTest test; }
|
рдРрд╕реА рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ MyTest рдХреЗ рд▓рд┐рдП FQN b.b2.MyTest рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдПрдХ рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, x рдкрд░ рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред [ShortTypeName]
рдирд╛рдо рд╕рдВрдШрд░реНрд╖
рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм x рдХреЗ рдорд╛рди рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреБрдЫ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░реЗрдВрдЧреЗ
using b.b2; class x { class MyTest{} } class Example { MyTest test; }
| using x = b.b2; class x { class MyTest{} } class Example { x.MyTest test;
|
рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рдЖрдкрдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛, рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдШрд░реНрд╖ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред
рдХреНрд╡реЗрд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ System.Linq рдирд╛рдо рд╕реНрдерд╛рди (рдФрд░ рдЗрд╕ рддрд░рд╣) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рджрд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрджрд┐ рдХреНрд╡реЗрд░реА-рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рдпрд╣ рдерд╛ | рд╣реЛрдЧрд╛ |
---|
using System.Linq; ... var query = from c in svcContext.ContactSet join a in svcContext.AccountSet on c.ContactId equals a.PrimaryContactId.Id where a.Name.Contains("Contoso") where c.LastName.Contains("Smith") select new { account_name = a.Name, contact_name = c.LastName };
| using aaa = System.Linq;
|
рдЙрдЪрд┐рдд рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рдХреНрд╡реЗрд░реА рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЛ рдХреЙрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд░рддрд╛ рд╣реИ) рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
var query = aaa.Enumerable.Select( aaa.Enumerable.Where( aaa.Enumerable.Where( aaa.Enumerable.Join( svcContext.ContactSet, svcContext.AccountSet, c => c.ContactId, a => a.PrimaryContactId.Id, (c, a) => new { c, a }), @t => @taName.Contains("Contoso")), @t => @tcLastName.Contains("Smith")), @t => new { account_name = @taName, contact_name = @tcLastName });
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдЧрд░ рдбреЗрд╡рд▓рдкрд░ рдЗрддрдиреА рдХреНрд░реВрд░рддрд╛ рд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдордЬрд╛рдХ рдЙрдбрд╝рд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рд╡рд╣ рдЦреБрд╢ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореИрдВ рдмрд╕ рдЗрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реВрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж
рд░рд┐рд╕рд░реНрдкрд░ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрд╛рдлреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рд╕реВрдЪрдирд╛ рдХрд╛ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИред рдПрд╕рдбреАрдХреЗ рдереЛрдбрд╝реА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП)ред
рд╕реНрд░реЛрдд рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ ReSharper рдХреА рдЖрдВрддрд░рд┐рдХ рд░рд╕реЛрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдирддреАрдЬрд╛ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓ рд░рд╣рд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред
resharper-plugins.jetbrains.com/packages/IntroduceNsAliasgithub.com/ulex/IntroduceNsAliasReSharper рдХреЗ рдкреНрд▓рдЧрдЗрди рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА:
тАв рдЕрдкрдШрдЯрди рдХрд░рдиреЗрд╡рд╛рд▓рд╛
тАв
рд╕рдВрдЧрдоред тАЛтАЛрдЬреЗрдЯрдмреНрд░реЗрдиреНрд╕.com/display/NETCOM/ReSharper+Plugin+DevelopmentтАв
tv.jetbrains.net/videocontent/getting-started-with-resharper-sdk