首页 > 代码库 > .net Thrift 之旅 (一) Windows 安装及 HelloWorld
.net Thrift 之旅 (一) Windows 安装及 HelloWorld
1.下载Thrift
http://apache.fayea.com/apache-mirror/thrift/0.9.2/thrift-0.9.2.tar.gz
2.下载编译器并解压
http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.2/thrift-0.9.2.exe
3.设置编译器的路径为环境变量
我的thrift-0.9.2.exe 放在C:/Windows路径下,所以设置环境变量中的 path:为 C:\Windows;
4.编写一个 test.thrift 文件
namespace java com.javabloger.gen.code struct User { 1: i32 ID 2: string Name }service UserService { User GetUserByID(1:i32 userID) list<User> GetAllUser() }
5.根据thrift自动生成Csharp代码
cmd中路径指定到test.Thrift的路径, 执行命令 thrift --gen csharp test.thrift
就会自动生成gen-csharp文件夹,里面有2个文件 User.cs 和 UserService.cs
6.新建工程
MyInterface中加入刚自动生成的文件
MyServer
class Program { static void Main(string[] args) { TServerSocket serverTransport = new TServerSocket(8899, 0, false); UserService.Processor processor = new UserService.Processor(new MyUserService()); TServer server = new TSimpleServer(processor, serverTransport); Console.WriteLine("Starting server on port 8899 ..."); server.Serve(); } } public class MyUserService : UserService.Iface { public User GetUserByID(int userID) { return new User() { ID = 1, Name = "wangxm" }; } public List<User> GetAllUser() { List<User> users = new List<User>(){ new User() { ID = 1, Name = "wangxm" }, new User() { ID = 2, Name = "xxxx" } }; return users; } }
MyClient
static void Main(string[] args) { TTransport transport = new TSocket("localhost", 8899); TProtocol protocol = new TBinaryProtocol(transport); UserService.Client client = new UserService.Client(protocol); transport.Open(); var users = client.GetAllUser(); users.ForEach(u => Console.WriteLine(string.Format("User ID : {0}, User Name {1}", u.ID, u.Name))); var user = client.GetUserByID(1); Console.WriteLine("------------------"); Console.WriteLine(string.Format("User ID : {0}, User Name {1}", user.ID, user.Name)); Console.ReadLine(); }
7:运行结果如下
.net Thrift 之旅 (一) Windows 安装及 HelloWorld
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。