当一个单体软件产品体量达到一定程序,都会想到拆分为不同的模块(当今这么流行微服务)。拆分后一定会存在进程之间的交互(简称:PRC),那么thrift就是facebook推出一款开源的rpc框架,且还跨语言。此文章就是来打开thrift的打开(当然这次还是基于.net)。 示例代码下载:https://gitee.com/samtest-project/thrift-test.git
下载地址:http://archive.apache.org/dist/thrift(可以选择可使用的版本),其中需要下载如下两个文件包:
此点要注意,他分为.net35和.net45两个版本,可以根据需要进行相应的生成
struct User{
1:i32 id
2:string name
}
service UserService{
User GetUserById(1:i32 userId)
list<User> GetAll()
void add(1:User user)
}
生成成功后,会有一个gen-csharp文件夹
gen-csharp文件夹中包含的就是我们需要的c#代码。
项目结构如下
其引用关系为如下:
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(user);
}
public List<User> GetAll()
{
return this.users.ToList();
}
public User GetUserById(int userId)
{
return this.users.Where(m => m.Id == userId).FirstOrDefault();
}
}