我正在序列化一条消息,其中包含字符串中的一些不可见字符。它工作正常,但我不知道是否可以在字符串字段的默认值中有一个不可见的字符。
类似的东西:
Message test1 {
optional string testField = 1 [default = "<STX>"];
}
有没有解决办法呢?
答案 0 :(得分:0)
这取决于您是使用.proto架构还是代码优先。在后一种情况下 - 确定:只需告诉它你想要的东西:
[ProtoContract]
class Test1 {
private const string STX = "\u0002";
[ProtoMember(1), DefaultValue(STX)]
public string TestField1 { get; set; }
public Test1() {
TestField1 = STX;
}
}
其中"\u0002"
是STX令牌的C#文字,值为2的代码点。
如果您正在使用.proto;那么严肃地说我不知道。 .proto的language guide没有提及有关字符串转义规则的任何内容。我可以调查(但不是“现在”),但没有特别的答案在这里“显而易见”。如果你碰巧已经知道其他基于.proto的生成器的答案,那么我全都听见了。