рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рди

рдмрдбрд╝рд╛ рд▓рд╛рд▓ рдмрдЯрди

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

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

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореИрдХреНрд░реЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


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

рдХрд╛рд░реНрдп 1. рд╡реАрдПрд╕ рдореЗрдВ рдЪрдпрдирд┐рдд рд╢рдмреНрдж рдХреА рдкрд░рд┐рднрд╛рд╖рд╛

Dim doc As Document = DTE.ActiveDocument Dim d As TextDocument = doc.Object Dim bp = d.Selection.AnchorPoint.CreateEditPoint, ep = d.Selection.BottomPoint.CreateEditPoint Dim caption As String = bp.GetText(ep) If (String.IsNullOrWhiteSpace(caption)) Then Exit Sub '       -   


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

рдХрд╛рд░реНрдп 2. рд╕рдВрд╕рд╛рдзрди рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдирд╛рдо рдкрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ: рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╕рдмрд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ)ред рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП Google рдЕрдиреБрд╡рд╛рдж рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рд╣реИ
рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ:
{"responseData": {"translatedText":"Organization Structure"}, "responseDetails": null, "responseStatus": 200}

 Private Function ConvertToResourceName(ByVal text As String) As String Dim result As String = (New WebClient()).DownloadString("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + text + "&langpair=ru|en") Dim stream As New MemoryStream(Encoding.Unicode.GetBytes(result)) Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(TranslateResult)) Return String.Join("", CType(serializer.ReadObject(stream), TranslateResult).responseData.translatedText _ .Split(" ", ".", ",", "!", "(", ")", vbCrLf, vbCr) _ .Where(Function(word) Not String.IsNullOrWhiteSpace(word)) _ .Select(Function(word) word(0).ToString().ToUpper() + word.Substring(1)) _ .ToArray()) End Function 

рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Google рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдХрд░ рджрд┐рдпрд╛, рд╡рд╣ рдпрд╣ рдерд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдбреАрд░рд┐рдПрд░рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Deserialization рдХреЗ рд▓рд┐рдП, DataContractJsonSerializer рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ DataContractJsonSerializer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА System.Runtime.Serialization.dll рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ Google рдХреЗ рдЙрддреНрддрд░ рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рджреЛ рдХрдХреНрд╖рд╛рдПрдВред

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

рдиреЛрдЯ: LINQ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ System.Core.dll рдореЗрдВ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛

 <DataContract()> _ Public Class TranslateResult <DataContract()> _ Public Class ResponseDataClass <DataMember()> _ Public translatedText As String <DataMember()> _ Public responseDetails As String <DataMember()> _ Public responseStatus As String End Class <DataMember()> _ Public responseData As ResponseDataClass End Class 

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

рдХрд╛рд░реНрдп 3. рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдирд╛

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЖрдкрдХреЛ рд╕рдВрд╕рд╛рдзрди рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ VS рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реА рдЧрдИ рдереА, рддреЛ рдлреЛрдХрд╕ рдЙрд╕ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднреНрд░рдорд┐рдд рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝реЛрдХрд╕ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
 Private Function FindWindow(ByVal fileName As String) As Window For i As Integer = 1 To DTE.Windows.Count If Not (DTE.Windows.Item(i).ProjectItem Is Nothing) Then If (DTE.Windows.Item(i).ProjectItem.FileNames(0) = fileName) Then Return DTE.Windows.Item(i) End If End If Next Dim oldactive As Document = DTE.ActiveDocument Dim newf = DTE.ItemOperations.OpenFile(fileName, Constants.vsViewKindTextView) oldactive.Activate() Return newf End Function 

рдЪреВрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрд╕рд╛рдзрди рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред
 Dim resourceFiles() As String = {" \ProjectResources.resx", _ " \ProjectResources.kk-KZ.resx"} 

рдЖрдк рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВ, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ, рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВред
 Dim paramName As String = ConvertToResourceName(caption) For Each item As String In resourceFiles Dim textDocument As TextDocument = FindWindow(item).Document.Object Dim startPoint = textDocument.StartPoint.CreateEditPoint, endPoint = textDocument.EndPoint.CreateEditPoint Dim root = XElement.Parse(startPoint.GetText(endPoint)) Dim param As XElement = root.Elements("data").FirstOrDefault(Function(el) el.Attribute("name") = paramName) If (param Is Nothing) Then root.Add(New XElement("data", New XAttribute("name", paramName) _ , New XAttribute(XName.Get("space", "http://www.w3.org/XML/1998/namespace"), "preserve") _ , New XElement("value", caption))) startPoint.ReplaceText(endPoint, root.ToString(), vsEPReplaceTextOptions.vsEPReplaceTextAutoformat) textDocument.Parent.Save() End If Next 

рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдХреНрд░рдорд╢рдГ рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ xml-ku рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреА рдкреВрд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реАрдзреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ (рд╕рд╛рдордЧреНрд░реА рдПрдХ рдЦреБрд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ) рдФрд░ рдлрд┐рд░ рдкреВрд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╡рд░реНрдЧ рдХреА рдкреАрдврд╝реА рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред
рдиреЛрдЯ: XElement рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, System.Xml, System.Xml.Linq рдХреЗ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВ;

рдЯрд╛рд╕реНрдХ 4. рдпреВрдЬрд░-рд╕реЗрд▓реЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рд╢рдмреНрдж рдХреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдирдП рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдмрджрд▓реЗрдВ

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ xaml / cs / vb рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдкрд╣реБрдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИ, рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд▓рд╛рдЗрди рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
 Dim replaceString As String Select Case Path.GetExtension(doc.FullName).ToLower() Case ".xaml" : replaceString = "{Binding Source={StaticResource ResourceProvider},Path=ProjectResources." + paramName + "}" Case ".cs" : replaceString = "ProjectResources." + paramName Case Else : replaceString = paramName End Select bp.ReplaceText(ep, replaceString, 0) '   d.Selection.MoveToPoint(bp) d.Selection.SwapAnchor() d.Selection.MoveToPoint(ep, True) '    ,   


рд╕рднреА рдореИрдХреНрд░реЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдлрд╛рдпрджреЗ / рдиреБрдХрд╕рд╛рди


рд╕реНрдкрд╖реНрдЯ рджреЛрд╖реЛрдВ рдХрд╛

рд▓реЗрдЦ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЧрдарди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles