默认字符串值中的不可见字符

时间:2013-05-29 09:57:44

标签: protobuf-net

我正在序列化一条消息,其中包含字符串中的一些不可见字符。它工作正常,但我不知道是否可以在字符串字段的默认值中有一个不可见的字符。

类似的东西:

Message test1 {
    optional string testField = 1 [default = "<STX>"];
}

有没有解决办法呢?

1 个答案:

答案 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的生成器的答案,那么我全都听见了。