.NET рдореЗрдВ рдереНрд░рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ .NET рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдереНрд░рд┐рдлреНрдЯ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдереНрд░рд┐рдлреНрдЯ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб, рдЬреИрд╕реЗ рдХрд┐ C ++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C #, Cocoa, Smalltalk рдФрд░ OCaml рд╣реИред



рдереНрд░рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдлреЗрд╕рдмреБрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ рднреА рдмрд╛рд░-рдмрд╛рд░ рд╣рдмреНрд░реЗ рдкрд░ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ .NET рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ .NET рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо рджрд░ рдХрджрдо рдЧрд╛рдЗрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рдкрд░ рднреА рдЧрд╛рдпрдм рд╣реИред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдпрд╣ Google рдореЗрдВ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЦрд░рд╛рдм рджреЗрдЦрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдереНрд░рд┐рдлреНрдЯ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдПрдХ рд╕реЗрд╡рд╛, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .NET рдкрд░ рдереНрд░рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк

  1. рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
  2. рд▓рдЧрднрдЧ рд╕рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдорд┐рд▓рддреЗ рд╣реИрдВред
рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реЗрд╡рд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╕ рд╕рдордп рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЖрдЙрдЯ рд╣реЛрдиреЗ рд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред





рддреЛ рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ:

  1. рдереНрд░рд┐рдлреНрдЯ рд╕реНрд░реЛрдд - рд╣рдореЗрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдХрдХреНрд╖рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  2. рдереНрд░рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ - рдПрдХ рдХрдВрд╕реЛрд▓ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдЬреЛ рдХреЛрдб рдХреЛ рдЙрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ .thrift рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ


рджреЛрдиреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЖрд╡реЗрджрди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рджреВрдВрдЧрд╛, рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИрдВ, рдЖрдк рд╡рд╣рд╛рдВ рд╕реЗ рд╕рдм рдХреБрдЫ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред



рдЪрд░рдг 1: рддреИрдпрд╛рд░реА

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

thrift-0.5.0\lib\csharp\src\





рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ Thrift.dll рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред



рдЪрд░рдг 2: рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ 3 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛:

рдЫрд╡рд┐



рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдереНрд░рд┐рдлреНрдЯ.рдбреЗрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдереНрд░рд┐рдлрд╝реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВред



рдЪрд░рдг 3: .rift рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

рд╣рдо рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде TimeService.thrift рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

namespace csharp TimeServer.Thrift



//Structure for returning Time

struct TimeInfoStruct{

1: string Time

}



//Service

service TimeService

{

TimeInfoStruct GetTime()

}




* This source code was highlighted with Source Code Highlighter .








рдФрд░ TimeServerCore рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд╛рд▓реЗрдВ ред рдЪрд░рдг # 1 рдореЗрдВ рдкреНрд░рд╛рдкреНрдд Thrift.dll рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ (рд╕рдВрджрд░реНрдн) рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднреА рдЬреЛрдбрд╝реЗрдВред



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



рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓рдЧрднрдЧ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рд╣реИред



рдЖрдк .thrift рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдереНрд░рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд╛рдг рдШрдЯрдирд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдпрджрд┐ рд╣рдо TimeService.thrift рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ



рдореЗрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдпрд╣ рдХреЙрд▓ рдорд┐рд▓рд╛

$(SolutionDir)\Thrift\thrift-0.5.0.exe -gen csharp -o $(ProjectDir) $(ProjectDir)\TimeService.thrift







"рдереНрд░рд┐рдлреНрдЯ-0.5.0.exe" рд╕реНрд╡рдпрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ, рд╡рд┐рдХрд▓реНрдк "-gen csharp" рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ C # рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд┐рдХрд▓реНрдк "-o $ (ProjectDir)" рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХрд╣рд╛рдВ рдбрд╛рд▓рдирд╛ рд╣реИ, рдФрд░ рд╢реЗрд╖ "$" (ProjectDir) ) \ TimeService.thrift " рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд╛рдг рдШрдЯрдирд╛ рд╣реИ) рдЯрд╛рдЗрдорд╕реЗрд╡рд░рдХреЛрд░ , рд╣рдо 2 рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВрдЧреЗ

TimeInfoStruct.cs - рд╕рдордп рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд╕реЗрд╡рд╛ рдкрджреНрдзрддрд┐ рдмрд╕ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рдеред

TimeService.cs рд╣рдорд╛рд░реА рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рд╣реИред



рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди / рдбреАрд░рд┐рдПрд░рд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреМрд░рд░рд┐рдВрдЧ рдФрд░ рдХреБрдЫ рдФрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рднреА рд╣реИред



рд╡реЗ \ TimeServerCore \ gen-csharp \ TimeServer \ Thrift рдореЗрдВ рдЭреВрда рдмреЛрд▓реЗрдВрдЧреЗред рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬреАрди-рд╕реАрдПрд╕рдПрдЖрд░рдкреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдФрд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдХрд╛рд░рдг рдкрджрд╛рдиреБрдХреНрд░рдо (\ TimeServer \ Thrift) рдореЗрдВ рджреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрди 2 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:

рдЫрд╡рд┐



рдЪрд░рдг 4: рд╕рд░реНрд╡рд░

рдЪрд▓реЛ рдПрдХ рд╕рд░реНрд╡рд░ рд▓реЗрддреЗ рд╣реИрдВред TimeServer рдореЗрдВ Thrift.dll, рд╕рд╛рде рд╣реА рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ TimeServerCore рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ TimeServiceImplementation.cs рдмрдирд╛рдПрдВ ред



рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рд╣рдо рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ TimeService.cs рдереНрд░рд┐рдлреНрдЯ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдпрд╣рд╛рдБ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ:

public class TimeService { //



public interface Iface {

TimeInfoStruct GetTime();

}

//...

}




* This source code was highlighted with Source Code Highlighter .








рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ .thrift рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИред



рдпрд╣рд╛рдБ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:

class TimeServiceImplementation : TimeService.Iface

{

public TimeInfoStruct GetTime()

{

return new TimeInfoStruct() { Time = DateTime .Now.ToString() };

}

}




* This source code was highlighted with Source Code Highlighter .








рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИ, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ:

static void Main( string [] args)

{

TimeServiceImplementation service = new TimeServiceImplementation();

TProcessor processor = new TimeService.Processor(service);

TServerTransport transport = new TServerSocket(1337, 1000);

TServer server = new TSimpleServer(processor, transport);



server.Serve();

}




* This source code was highlighted with Source Code Highlighter .








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

TSimpleServer рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, Thrift.dll рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ TThreadedServer рдФрд░ TThreadPoolServer рд╣реИрдВред



рдЪрд░рдг 5: рдЧреНрд░рд╛рд╣рдХ



рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИ:



static void Main( string [] args)

{

TTransport transport = new TSocket( "localhost" , 1337);

TProtocol proto = new TBinaryProtocol(transport);

TimeService.Client client = new TimeService.Client(proto);



transport.Open();

TimeInfoStruct result = client.GetTime();



Console .WriteLine(result.ToString());

Console .ReadKey();

}




* This source code was highlighted with Source Code Highlighter .








рдЧреНрд░рд╛рд╣рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП Thrift.dll рдФрд░ TimeServerCore рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВред



рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╛рдЗрдВрдЯред рдЬрд┐рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред



рд╡рд╣ рд╕рдм рд╣реИред рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рд╣рдордиреЗ рдереНрд░рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдФрд░ рдкрд░рд┐рдЪрд┐рдд рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛, рдФрд░ рддрдм рднреА рдЗрддрдирд╛ рдирд╣реАрдВред рдЕрдм рд╣рдо рдЕрдкрдиреА .thirft рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирдИ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдереНрд░рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рднреА рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред



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



рдпрд╣рд╛рдБ рд╡рд╛рджрд╛ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рд╣реИрдВ:

dl.dropbox.com/u/3945288/Thirft-Time-Server-.NET-Sample.zip

github.com/kmuzykov/Thirft-Time-Server-.NET-Sample



рдпрд╣рд╛рдБ рдереНрд░рд┐рдлреНрдЯ рд╡рд┐рдХреА рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ .NET рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред



All Articles