Приветствую.
Имеется вот такой код:
[ProtoContract(Name = "CMsgClientMMSLobbyChatMsg")]
public class CMsgClientMMSLobbyChatMsg : IExtensible
{
public CMsgClientMMSLobbyChatMsg();
[DefaultValue(0)]
[ProtoMember(1, IsRequired = false, Name = "app_id", DataFormat = DataFormat.TwosComplement)]
public uint app_id { get; set; }
[DefaultValue(null)]
[ProtoMember(4, IsRequired = false, Name = "lobby_message", DataFormat = DataFormat.Default)]
public byte[] lobby_message { get; set; }
[DefaultValue(0)]
[ProtoMember(2, IsRequired = false, Name = "steam_id_lobby", DataFormat = DataFormat.FixedSize)]
public ulong steam_id_lobby { get; set; }
[DefaultValue(0)]
[ProtoMember(3, IsRequired = false, Name = "steam_id_sender", DataFormat = DataFormat.FixedSize)]
public ulong steam_id_sender { get; set; }
}
Вот так я пытаюсь получить информацию о сообщении:
private void LobbyChatMessage(LobbyChatMsg_t r)
{
var pvData = new byte[4096];
CSteamID sender;
EChatEntryType eType;
SteamMatchmaking.GetLobbyChatEntry(
(CSteamID) r.m_ulSteamIDLobby,
(int) r.m_iChatID,
out sender,
pvData,
4096,
out eType);
CMsgClientMMSLobbyChatMsg msg;
using (var stream = new MemoryStream(pvData, 0, 4096))
{
msg = ProtoBuf.Serializer.Deserialize<CMsgClientMMSLobbyChatMsg>(stream);
}
log($"Got lobby message. \nMessage: {msg.lobby_message}\nSender: {msg.steam_id_sender}");
}
Вот такую ошибку получаю каждый раз:
Вызвано исключение: "ProtoBuf.ProtoException" в protobuf-net.dll
Invalid field in source data: 0
Массив pvData не пустой, проверял. Содержит в себе сообщение. Где ошибка?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеет ли смысл использовать голый ASPNET? Есть ли в этом какая-нибудь необходимость когда-нибудь?
Ничего не отображается, я уже облегчал, убрал, то что идёт после && и всё рано не работает, почему у меня постоянно не работают такие простые...