是否可以在.proto文件中将字段标记为只读,以便在生成代码时这些字段没有设置器?
答案 0 :(得分:1)
最终,我认为这里的答案将是“否”。有一个适用于DTO的良好基本指导规则:
或者换句话说:生成器不想公开只读成员这一事实是不相关的,因为如果您需要一些奇特的东西,那么您不应在直接接触序列化的代码之外使用生成的类型。因此:在与DTO相同的域类型中:将其设为只读那里。
至于为什么只读字段在序列化工具中通常不是一回事:您大概希望能够为其赋予一个值。序列化工具通常希望能够编写其可以读取的所有内容,并读取其可以编写的所有内容。
自从提到C#以来,完整性方面的次要注意事项:如果您在protobuf-net上使用代码优先方法,则可以与仅{get;}
的自动道具以及{get;}
一起使用唯一的手动道具 if 所有公共成员都轻而易举地映射到一个明显的构造函数。