Bond:如何在代码生成期间更改字段和类名

时间:2017-01-30 14:41:47

标签: c# bond

我有一个带有这样结构的绑定文件:

struct Foo
{
    0: float myField1;
    1: float myField2;
}

我正在使用此文件为C ++和C#生成代码。但在C#代码中,我希望字段名称大写:MyField1,MyField2。

有没有办法做到这一点?

同样,我可能希望Foo在我的C#代码中命名为Bar(为了向后兼容我的预绑定客户端)。但我没有看到任何关于如何做到这一点的文件。

1 个答案:

答案 0 :(得分:0)

使用债券代码生成器gbc时,无法重命名类型/字段。这些功能根本不存在。

如果您愿意,可以手动编写C#类,并使用Bond的attributes进行注释。这将为您提供高度兼容的结构。使用这种方法,使用一个中心位置来描述.bond文件中的结构,确实失去了很多好处。通过注释现有的类,这可能是与您的前债券客户接口的正确权衡。

如何根据问题中的结构执行此操作的示例:

[Bond.Schema]
class Bar
{
    [Bond.Id(0)]
    public float MyField1;

    [Bond.Id(1)]
    public float MyField2;
}

这有一些警告:

  • 进行更改时,您必须手动将其与.bond文件保持同步。
  • 这些Foo和Bar结构的完整模式略有不同。这些字段具有不同的名称(“myField1”与“MyField2”),如果查看每个结构的SchemaDef,您将能够检测到这些名称。使用binary protocols时,字段名称无关紧要:只有ID才有效。使用基于文本的协议时,the names do matter