public override byte[] GetBytes() {
base._length=(ushort)(6+enc.GetByteCount(TopicPath));
byte[] buf=base.GetBytes();
int ptr=buf[0]==1?4:2;
buf[ptr++]=(byte)(TopicId>>8);
buf[ptr++]=(byte)(TopicId);
buf[ptr++]=(byte)(MessageId>>8);
buf[ptr++]=(byte)(MessageId);
enc.GetBytes(TopicPath).CopyTo(buf, ptr);
return buf;
}