我是Google ProtoBuf文件的新手。我在Google protobuf文件中有以下消息包。

 message AvailabilityOfLockersResp{
  uint32 NumberOfAvailableLockers;
  repeated uint32 lockerIds = 1;
 }


并且我使用Protoc.exe生成了相应的ProtoBuf类,并在.net项目中添加了生成的c#类文件。

我的问题是,当我向该lockerIds字段分配值时,出现以下错误。

c# - 无法将属性或索引器googleprotobuf RepeatedField分配给它-只读-LMLPHP

它向我显示这是一个只读字段。但是,我想为该字段分配一个值。那么,要实现这一点,我应该怎么做?如果我错了,请纠正我。

提前致谢。

最佳答案

我在上面问了自己的问题,找到了答案。

        List<uint> lockerIds = new List<uint>();

        ProtoPacket protoPacketResponse = new ProtoPacket
        {
            AvailabilityOfLockersResp = new AvailabilityOfLockersResp { NumberOfAvailableLockers = (uint)lockerIds.Count() }//LockerIds = lockerIds,
        };


在新实例之外,我已将值分配给LockerIds,如下所示,

protoPacketResponse.AvailabilityOfLockersResp.LockerIds.AddRange(lockerIds);

08-25 05:26