In here is an error, that object_name should be in TBase.
Next time, please post the exact error message (use copy+paste), this makes it easier for all of us.
How can I resolve this?
Whatever you want to serialize with Thrift, must be an descendant of Thrift's TBase class. You achieve this by writing some Thrift IDL and save it as a file (e.g. MyDataStructs.thrift):
struct Employee { 1: string name 2: string surname 3: i32 age }Next, you pass that file to the Thrift compiler and tell him to generate some C# code from it:
thrift -gen csharp MyDataStructs.thriftThis gives you a class derived from TBase:
public partial class Employee : TBase { private string _name; private string _surname; private int _age; // properties public string Name {... } public string Surname { ... } public int Age { ... } // some details omitted public void Read (TProtocol iprot) { // generated code for Read() method } public void Write(TProtocol oprot) { // generated code for Write() method } public override string ToString() { // generated code for ToString() method } }This is what Thrift expects.
在这里是一个错误,那object_name应tbase。
下一次,请发详细的错误信息(使用复制+粘贴),这使得它更容易对我们所有人。
我怎样才能解决这个问题?
无论你想序列化节俭,节俭是一个必须的后裔TBase类你通过写一些并保存为一个文件(例如MyDataStructs.thrift):
struct Employee { 1: string name 2: string surname 3: i32 age }接下来,你通过文件要勤俭节约的编译器和告诉他从它产生一些C #代码:
thrift -gen csharp MyDataStructs.thrift这给你来自tbase类:
public partial class Employee : TBase { private string _name; private string _surname; private int _age; // properties public string Name {... } public string Surname { ... } public int Age { ... } // some details omitted public void Read (TProtocol iprot) { // generated code for Read() method } public void Write(TProtocol oprot) { // generated code for Write() method } public override string ToString() { // generated code for ToString() method } }这就是节俭预计。