我有以下课程:
[ProtoContract]
public class BaseModel<T>
{
[ProtoMember(1, IsRequired = true), ]
public int Timestamp { get; set; }
[ProtoMember(2, IsRequired = true)]
public T Data { get; set; }
}
[ProtoContract]
public class IdName
{
[ProtoMember(1)]
public int Id { get; set; }
[ProtoMember(2)]
public string Name { get; set; }
}
然后调用以下方法生成proto文件:
string protoFile = Serializer.GetProto<List<IdName>>();
我得到以下输出:
package Protobuf_Test;
message BaseModel_List`1 {
required int32 Timestamp = 1 [default = 0];
repeated IdName Data = 2;
}
message IdName {
optional int32 Id = 1 [default = 0];
optional string Name = 2;
}
为什么要生成这个奇怪的名字BaseModel_List`1
?
有没有办法为此设置名称?
提前致谢
答案 0 :(得分:1)
问题中的代码:
string protoFile = Serializer.GetProto<List<IdName>>();
工作正常 - 没有坏名字。假设你的意思是:
string protoFile = Serializer.GetProto<BaseModel<List<IdName>>>();
然后这是生成器代码的疏忽。 I've logged this as a bug