半钟头入门Thrift金沙手机APP

三、建立项目

项目结构如下

金沙手机APP 1

其引用关系为如下:

  • 所有项目都必须引用在在1.1中编译好的Thrift.dll文件
  • Client和Server项目都必须引用Thrift.Services项目
  • 在Server端做接口的实现,接口在对应的Service下
  • UserService的实现代码如下:

public class UserServiceImp : UserService.Iface    {        private IList<User> users;        public UserServiceImp()        {            this.users = new List<User>();        }        public void add(User user)        {            Console.WriteLine(user.Name);            this.users.Add;        }        public List<User> GetAll()        {            return this.users.ToList();        }        public User GetUserById(int userId)        {            return this.users.Where(m => m.Id == userId).FirstOrDefault();        }    }

当一个单体软件产品体量达到一定程序,都会想到拆分为不同的模块(当今这么流行微服务)。拆分后一定会存在进程之间的交互,那么thrift就是facebook推出一款开源的rpc框架,且还跨语言。此文章就是来打开thrift的打开(当然这次还是基于.net)。
示例代码下载:

一、准备工作

下载地址:

  • thrift-*.*.exe:此程序是在windows上用的,用于将thrift文件转换为对应语言的代码文件工具
  • thrift-0.11.0.tar.gz:供各语言使用的基类库,c#要编译出对应的dll

二、生成rpc可使用的文件

2.1 创建hello.thrift文件,并输入如下内容:

struct User{    1:i32 id    2:string name}service UserService{    User GetUserById(1:i32 userId)     list<User> GetAll()    void add(1:User user)}

四、测试

金沙手机APP 2

2.2 运行命令进行csharp代码的生成

金沙手机APP 3

生成成功后,会有一个gen-csharp文件夹

金沙手机APP 4

gen-csharp文件夹中包含的就是我们需要的c#代码。

1.1 生成Thrift.dll

此点要注意,他分为.net35和.net45两个版本,可以根据需要进行相应的生成

金沙手机APP 5

相关文章