1

我知道 Bond 支持列表,我只是想知道我们是否可以创建类似的类

class Car
{
    string Model;
    string PlateNumber;

    // ...
}

那么我可以在债券文件中有这样的东西吗?

namespace MyNameSpace
{
    struct Gallery
    {
        0: required List<Cars> AllCars;
    }
}

如果可能的话,任何人都可以写一个完整的债券文件应该是什么样子的例子吗?

另外我应该在哪里添加类定义才能像这样使用它?

编辑:我需要 Car 是一个绑定结构,作为 Gallery 的一部分进行序列化,所以每当我检索 Gallery 对象时,我应该能够访问和修改属于它的汽车列表。

4

1 回答 1

0

由于您希望 Car 成为 Bond 结构,因此您可以在与 Gallery 相同的 .bond 文件中定义它,然后在定义AllCars字段时使用它。这是一个示例gallery.bond:

namespace MyNameSpace;

struct Car
{
    0: string Model;
    1: string PlateNumber;
}

struct Gallery
{
    // Car needs to be defined/imported before Gallery so it's visible here
    0: required vector<Car> AllCars;
}

请注意,Bond 的vector字段类型映射到 C# 的List. (邦德list映射到LinkedList。)

代码生成工具的文档gbc虽然简短地讨论了字段定义可以具有的类型。如果最终需要递归结构,则需要使用前向声明和可为空的字段

如果您愿意,您可以放入Car它自己的 .bond 文件,然后将该 .bond 文件导入到带有 .bond 的文件中Gallery。如果您有兴趣,有一个示例展示了导入的工作原理。

于 2017-08-04T19:45:38.263 回答