Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 谷歌协议缓冲区-设置一个字段。_C#_File_Serialization_Protocol Buffers_Memorystream - Fatal编程技术网

C# 谷歌协议缓冲区-设置一个字段。

C# 谷歌协议缓冲区-设置一个字段。,c#,file,serialization,protocol-buffers,memorystream,C#,File,Serialization,Protocol Buffers,Memorystream,我将Google协议缓冲区与C#一起使用,无法为我拥有的对象设置字段。我有两个.proto文件:filepath.proto和filepath.proto。Filepath.proto包含Filepath.proto消息的重复字段。以下是两个文件: // filepath.proto syntax = "proto3"; package TEST; message FilePath { string path = 1; } // filepaths.proto syntax = "p

我将Google协议缓冲区与C#一起使用,无法为我拥有的对象设置字段。我有两个.proto文件:filepath.proto和filepath.proto。Filepath.proto包含Filepath.proto消息的重复字段。以下是两个文件:

// 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;
}
我知道如何创建文件路径对象:

如您所见,FilePaths消息使用多个FilePath对象。我知道如何使用以下方法创建多个FilePath对象:

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);

VisualStudio告诉我,文件路径的字段“路径”是只读的,也就是说,我只得到一个get,而不是一个集合。有没有办法解决这个问题?基本上,我正在尝试创建一个包含多个FilePath对象的FilePath对象

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

FilePaths fpTest = new FilePaths
{
    Path = { filepaths }
};
FilePaths fpTest = new FilePaths
{
    Path = { filepaths }
};