Protobuf-net GetProto使用List时的奇怪名字

Protobuf-net GetProto strange name when using List

我有以下 class:

[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? 有没有办法为此设置名称?

提前致谢

题中代码:

string protoFile = Serializer.GetProto<List<IdName>>();

工作正常 - 没有坏名字。假设你的意思是:

string protoFile = Serializer.GetProto<BaseModel<List<IdName>>>();

那么这是对生成器代码的疏忽。 I've logged this as a bug.