問題描述
protogen ‑ 支持 指定的語法 (protogen ‑ support the Specified syntax)
幾年後,我已將我的 protogen.exe
版本升級到 3.0.101。
早期版本為每個可選成員生成一個布爾屬性 " ;Specified”。
例如,我的消息有一個可選的布爾字段TurnScreenOnAndOff
。
C#類有兩個屬性:
public bool TurnScreenOnAndOff {get; set; }
public bool TurnScreenOnAndOffSpecified {get; set; }
使用 protogen
的更高版本,我得到以下成員:
public bool TurnScreenOnAndOff {get; set; }
public bool ShouldSerializeTurnScreenOnAndOff();
這破壞了我現有的大部分代碼。是否有命令行選項讓 protobuf
代碼生成器使用早期的約定?
參考解法
方法 1:
Currently, no. However, it is probably no more than a few minutes to enable it; the relevant code is in WriteField()
, noting that ctx.GetCustomOption(key)
accesses additional key/value pairs passed to the generator. This is possibly more of a GitHub discussion, though.
(by Andrew Shepherd、Marc Gravell)