c# - Protobuf 字符串默认值
问题描述
在 .proto 上
message ClientInfos
{
optional bytes ProfessionType = 1 [default = "Doctor"];
optional bytes State = 2 [default = "AZ"];
}
这是创建的 C# 代码
[global::ProtoBuf.ProtoContract()]
public partial class ClientInfos : global::ProtoBuf.IExtensible
{
private global::ProtoBuf.IExtension __pbn__extensionData;
global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
=> global::ProtoBuf.Extensible.GetExtensionObject(ref __pbn__extensionData, createIfMissing);
[global::ProtoBuf.ProtoMember(1)]
[global::System.ComponentModel.DefaultValue(Doctor)]
public byte[] ProfessionType
{
get => __pbn__ProfessionType ?? Doctor;
set => __pbn__ProfessionType = value;
}
public bool ShouldProfessionType() => __pbn__ProfessionType != null;
public void ResetProfessionType() => __pbn__ProfessionType = null;
private byte[] __pbn__ProfessionType;
[global::ProtoBuf.ProtoMember(2)]
[global::System.ComponentModel.DefaultValue(AZ)]
public byte[] State
{
get => __pbn__State ?? AZ;
set => __pbn__State = value;
}
public bool ShouldSerializeState() => __pbn__State != null;
public void ResetState() => __pbn__State = null;
private byte[] __pbn__State;
}
Doctor 上有一条错误消息:名称“Doctor”在当前上下文中不存在 AZ 相同
实际上所有的字符串默认值都有相同的错误信息
我试图把 syntax = "proto2"; 但它解决了问题