2017-01-19 3 views
1

У меня есть следующий класс:Protobuf-сеть GetProto странное имя при использовании списка

[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; } 
} 

И затем вызвать следующий метод для создания файла прото:

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? Есть ли способ установить имя для этого?

Заранее спасибо

ответ

1

Код в вопросе:

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

работает отлично - нет плохих имен. Предполагая, что вы имеете в виду:

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

то это недосмотр в коде генератора. I've logged this as a bug.

+0

Да, извините, мой плохой. это то, что я имею в виду. – pantonis

Смежные вопросы