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" />
<PackageVersion Include="lynMarkdigRenderTest5" Version="1.0.0" />
<PackageReference Include="lynMarkdigRenderTest5" />
paket add lynMarkdigRenderTest5 --version 1.0.0
#r "nuget: lynMarkdigRenderTest5, 1.0.0"
#:package lynMarkdigRenderTest5@1.0.0
#addin nuget:?package=lynMarkdigRenderTest5&version=1.0.0
#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 | 1 | 11/24/2020 |