[英]How do I generate a .proto file from a C# class decorated with attributes?
[英]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.