繁体   English   中英

C# 从 c# 类创建 proto 文件

[英]C# create proto file from c# class

我正在尝试从我的 c# 类为一些外部合作者生成 protobuf 文件。 问题是:我有很多可以为空的值(int?,double?)

但是当我这样做时:

string protoOutput = Serializer.GetProto<Test>();

与班级

[ProtoContract]
public class Test
{
    [ProtoMember(1)]
    public int? TEST { get; set; }

    [ProtoMember(2)]
    public DateTime SDF { get; set; }
}

原型序列化器输出是:

 syntax = "proto3";
import "google/protobuf/timestamp.proto";

message Test {
   int32 TEST = 1;
   .google.protobuf.Timestamp SDF = 2;
}

我如何配置序列化程序以获得:

google.protobuf.Int32Value

对于我的诠释? 财产

提前致谢

protobuf-net 目前不将数据宣传为Int32Value ,即使它做了:这不是int? 被编码,所以:那会很糟糕。

然而,我们或许应该在这里做的是利用(相当​​新的)proto3 存在跟踪功能(在最后一次触摸该代码时不存在该功能)。 要手动解释,这意味着:“添加optional ”,即

syntax = "proto3";
import "google/protobuf/timestamp.proto";

message Test {
   optional int32 TEST = 1;
   .google.protobuf.Timestamp SDF = 2;
}

它提供了一种检测“无值”的机制,同时仍与相关编码兼容。 今天,我想说:手动添加optional

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM