C#Bond:我可以在我的绑定结构中拥有自定义类的列表吗?

时间:2017-08-04 01:16:44

标签: c# database database-design object-storage bond

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

class Car
{
    string Model;
    string PlateNumber;

    // ...
}

我可以在绑定文件中使用这样的内容吗?

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

如果有可能,有人可以写一个完整的债券文件应该如何的例子吗?

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

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

1 个答案:

答案 0 :(得分: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;
}

请注意,邦德的vector字段类型映射到C#&#39; s List。 (邦德list映射到LinkedList。)

gbc代码生成工具的文档尽管简要介绍了the types a field definition可以有的内容。如果您最终需要递归结构,则需要使用forward declarationsnullable fields

如果您愿意,可以将Car放在自己的.bond文件中,然后将该.bond文件导入到Gallery的文件中。如果您有兴趣,请an example showing how importing works