Как указать атрибуты ProtoBuf-Net в классах веб-ссылки?
У меня есть веб-служба .net 2.0, в которой я создаю байт [] с использованием protobuf.В моем клиенте (v3.5) я хочу десериализовать байт [] в соответствующий класс.Однако при десериализации все, что я получаю, это 0 и нули.
Причина этого в том, что я указываю тип в качестве класса Web Reference.
не работает правильно
using (MemoryStream stream = new MemoryStream(byteArray))
{
List<WebReferencePerson> personsList = Serializer.DeserializeWithLengthPrefix<List<WebReferencePerson>>(stream, PrefixStyle.Base128);
stream.Close();
}
Однако, если я создаю другой класс Person1 в клиенте и указываю атрибуты Proto [ProtoContract] и [ProtoMember ()], я получаю правильные данныедесериализации.то есть
[ProtoContract]
class Person1
{
[ProtoMember(1)]
string Name {get;set;}
[ProtoMember(2)]
int Id {get;set;}
}
Это прекрасно работает.
List<Person1> personsList =
Serializer.DeserializeWithLengthPrefix<List<Person1>>(stream, PrefixStyle.Base128);
Нет ли способа использовать классы из веб-справочника для десериализации данных?Как я могу указать атрибуты Protobuf для класса Web Reference?ИЛИ Нужно ли указывать другой класс с атрибутами Proto для десериализации данных из WebService?