System.IO.BinaryReader читает значения в формате с прямым порядком байтов.
У меня есть приложение C #, подключающееся к проприетарной сетевой библиотеке на стороне сервера. Как и следовало ожидать, серверная сторона отправляет все в порядке байтов в сети, но я считаю, что работать с этим на стороне клиента неудобно, особенно для неподписанных значений.
UInt32 length = (UInt32)IPAddress.NetworkToHostOrder(reader.ReadInt32());
- единственный способ, которым я придумал, чтобы получить правильное значение без знака из потока, но это кажется и неловким, и уродливым, и мне еще предстоит проверить, собирается ли это просто обрезать старшие значения что я должен делать забавные вещи BitConverter.
Есть ли какой-то способ, которым мне не хватает написать обертку вокруг всего этого, чтобы избежать этих уродливых преобразований при каждом чтении? Кажется, на читателе должна быть опция endian-ness, чтобы упростить подобные вещи, но я ничего не встречал.