lynMarkdigRenderTest5 1.0.0
dotnet add package lynMarkdigRenderTest5 --version 1.0.0
NuGet\Install-Package lynMarkdigRenderTest5 -Version 1.0.0
<PackageReference Include="lynMarkdigRenderTest5" Version="1.0.0" />
paket add lynMarkdigRenderTest5 --version 1.0.0
#r "nuget: lynMarkdigRenderTest5, 1.0.0"
// Install lynMarkdigRenderTest5 as a Cake Addin #addin nuget:?package=lynMarkdigRenderTest5&version=1.0.0 // Install lynMarkdigRenderTest5 as a Cake Tool #tool nuget:?package=lynMarkdigRenderTest5&version=1.0.0
Binary Helper
Класс BinaryConverter из пакета BinaryHelper предназначен для конвертации значений полей/свойств классов в массив байт и обратно из массива байт в значения полей/свойств.
Примеры использования
Предположим, у нас есть класс Test
:
class Test
{
[Binary]
public int a;
[Binary]
public byte B { get; set; }
[Binary(Count = 10)]
public string C { get; set; } = "Тест";
}
Кодирование в массив байтов
Test test = new Test() {a = 5, B = 1};
byte[] result = BinaryConverter.ToBytes(test);
Данный пример преобразует значения полей из экземпляра класса test
в массив байтов, в результате чего в переменной result
будет содержаться массив
[0x05, 0x00, 0x00, 0x00, 0x01, 0xd0, 0xa2, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, 0x20, 0x20]
Первые байты 0x05, 0x00, 0x00, 0x00
соответствуют значению a = 5
, байт 0x01
соответствует B = 1
, байты 0xd0, 0xa2, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82
соответствуют строке C = "Тест"
, назначенной в классе по умолчанию. Последние 2 байта 0x20, 0x20
соответствуют двум символам пробела, чтобы длина последовательности составила 10 байт, так как в атрибуте для поля C
явно задана длина 10:
[Binary(Count = 10)]
public string C { get; set; } = "Тест";
В случае, если длина массива байтов, полученных из строки, будет превышать 10, лишние байты будут отсечены. Это может привести к тому, что, например, в кодировке UTF8
последний символ при обратном декодировании может оказаться "битым".
Декодирование в класс из массива байтов
Данный пример преобразует массив байт, хранящийся в переменной data
, в значения полей и свойств класса Test
, создав его экземпляр в переменной test
.
byte[] data = new byte[] {0x05, 0x00, 0x00, 0x00, 0x01, 0xd0, 0xa2, 0xd0, 0xb5, 0xd1, 0x81, 0xd1, 0x82, 0x20, 0x20};
Test result = BinaryConverter.FromBytes<Test>(data);
Данный пример преобразует из массива байт в класс Test , в результате чего в переменной result
будет содержаться класс Test
result.a == 5
result.B == 1
result.C == "Тест"
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 0 | 11/24/2020 |