2017-08-04 92 views
1

我知道名单中邦德的支持,我只是想知道,如果我们能够创建一个像C#债券:我可以有我的债券结构中的自定义类列表?

class Car 
{ 
    string Model; 
    string PlateNumber; 

    // ... 
} 

类然后我可以在债券文件是这样的?

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

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

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

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

回答

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字段类型映射到的List C#。 (Bond的list映射到LinkedList。)

gbc代码生成工具的文档会谈,尽管简单地讲,大约可以使用the types a field definition。如果最终需要递归结构,则需要使用forward declarationsnullable fields

如果你想要,你可以把Car是它自己的.bond文件,然后将该.bond文件导入到带有Gallery的文件中。有an example showing how importing works,如果你有兴趣。