Thrifty 数据类型支持 - endink/Thrifty GitHub Wiki
Thrifty 数据类型
Thrifty 支持标准的 Thrift 数据类型,提供了 Thrift 到 C# 映射,除了标准映射外提供了额外的可用 C# 类型。 下表显示了 Thrifty 支持的数据类型:
基础类型
C# | Thrift | 说明 |
---|---|---|
bool | bool | 布尔类型 |
byte | byte | 单字节(8位) |
short | i16 | 16位整数 |
int | i32 | 32位整数 |
long | i64 | 64位整数 |
double | double | 双精度浮点数 |
Enum | enum | 双精度浮点数 |
float * | double | 单精度浮点数 |
System.DateTime * | i64 | |
string | string | 双精度浮点数 |
Guid* | string | uuid类型 |
Decimal* | string | 128 位数据类型 |
原生 thrift 协议基础类型支持数组 ,例如支持 int[], long[],但并不支持 string[](Thrifty 通过 list 类型来实现 string[] 支持)。
提示:带 * 的类型不是 thrift 原生支持的数据类型,Thrifty 通过特定模拟来实现。
注意:DateTime 类型最终以1970 年 1 月 1 日 00:00:00 (UTC) 以来所经历的毫秒间隔数,代码可表示为:
(datetimeValue - new DateTime(1970, 0, 0, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds
集合类型
C# | Thrift | 说明 |
---|---|---|
IDictionary<,> | map | 字典 |
Array | list | 数组 |
ISet<> | set | 集合 |
IList<> | set | 集合 |
IEnumerable<> | list | 集合 |
结构
C# | Thrift | 说明 |
---|---|---|
Object | strcut | 对象 |
关于结构定义,点击这里了解详细信息*
异常
当前 swifty 版本不支持异常类型,请勿使用,所有服务端异常客户端统一处理为 Thrift.TException.
可空类型
C# 值类型均可以支持可空类型(Nullable<>),对用 thrift idl 中的 optional