无法分配 RepeatedField 类型的属性或索引器 — 它是只读的

2024-03-02

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

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

我已经使用生成了相应的 ProtoBuf C# 类protoc.exe并将生成的 C# 类文件添加到我的 .NET 项目文件中。

当我为生成的值赋值时LockerIds字段我收到错误“无法分配属性或索引器“AvailabilityOfLockersResp.LockerIds”——它是只读的”:

它告诉我这是一个只读字段。但是,我想为该字段分配一个值。我如何向该字段添加内容?


我找到了我上面提出的问题的答案。

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

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

在新实例之外,我已将值分配给储物柜ID像下面这样,

protoPacketResponse.AvailabilityOfLockersResp.LockerIds.AddRange(lockerIds);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法分配 RepeatedField 类型的属性或索引器 — 它是只读的 的相关文章

随机推荐