首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Protocol Buffers -设置字段。

Google Protocol Buffers -设置字段。
EN

Stack Overflow用户
提问于 2017-02-16 04:51:57
回答 1查看 721关注 0票数 0

我正在使用Google Protocol Buffers和C#,但我无法为我拥有的对象设置字段。我有两个.proto文件: filepath.proto和filepaths.proto。Filepaths.proto包含用于Filepath.proto消息的重复字段。下面是两个文件:

代码语言:javascript
复制
// filepath.proto

syntax = "proto3";
package TEST;

message FilePath
{
   string path = 1;
}

// filepaths.proto
syntax = "proto3";
import "filepath.proto";
package TEST;

message FilePaths
{
   repeated FilePath file_path = 1;
}

我知道如何创建FilePath对象:

如您所见,FilePaths消息使用了几个FilePath对象。我知道如何使用以下命令创建几个FilePath对象:

代码语言:javascript
复制
Google.Protobuf.Collections.RepeatedField<FilePath> filepaths = new Google.Protobuf.Collections.RepeatedField<FilePath>();
filepaths.Add(fp1);
filepaths.Add(fp2);
filepaths.Add(fp3);
filepaths.Add(fp4);
filepaths.Add(fp5);

其中fp1、fp2、fp3、fp4和fp5是我在前面的代码中创建的FilePath对象。我像这样创建FilePaths对象:

代码语言:javascript
复制
FilePaths fpTest = new FilePaths
{
    Path = filepaths // ERROR HERE
};

Visual Studio告诉我,FilePaths的“路径”字段是只读的,也就是说,我只得到一个GET,而不是一个SET。有没有办法解决这个问题,或者有办法解决这个问题?基本上,我尝试创建一个包含多个FilePath对象的FilePaths对象。

EN

回答 1

Stack Overflow用户

发布于 2017-02-16 05:08:33

我想通了。您所要做的就是设置字段并将其放入括号中。因此,在我的示例中,我需要这样做:

代码语言:javascript
复制
FilePaths fpTest = new FilePaths
{
    Path = { filepaths }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42259811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档