我知道Bond支持列表,我只是想知道我们是否可以创建类
class Car
{
string Model;
string PlateNumber;
// ...
}
我可以在绑定文件中使用这样的内容吗?
namespace MyNameSpace
{
struct Gallery
{
0: required List<Cars> AllCars;
}
}
如果有可能,有人可以写一个完整的债券文件应该如何的例子吗?
另外我应该在哪里添加类定义以便能够像这样使用它?
编辑:我需要将Car作为一个绑定结构来作为Gallery的一部分进行序列化,因此每当我检索Gallery对象时,我都应该能够访问和修改属于它的汽车列表。
答案 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 declarations和nullable fields。
如果您愿意,可以将Car
放在自己的.bond文件中,然后将该.bond文件导入到Gallery
的文件中。如果您有兴趣,请an example showing how importing works。