В C# 4.0, у меня естьC#: Преобразование Список простых структур в байт []
List<HSZPAIR> myList
с тремя элементами где HSZPAIR структура определяется по формуле:
[StructLayout(LayoutKind.Sequential)]
public struct HSZPAIR
{
public IntPtr hszSvc;
public IntPtr hszTopic;
}
Как создать массив байтов для всего myList? В C++ вы можете просто передать массив массивов в массив байтов. Я не уверен, как это сделать на C#.
Я использую старую функцию Windows API в библиотеке DDEML, для которой требуется массив байтов и количество элементов в массиве в качестве аргументов. Если вы заинтересованы в более фона, функция API является:
[DllImport("user32.dll", EntryPoint="DdeCreateDataHandle", CharSet=CharSet.Ansi)]
public static extern IntPtr DdeCreateDataHandle(int idInst, byte[] pSrc, int cb, int cbOff, IntPtr hszItem, int wFmt, int afCmd);
Here is it's documentation on MSDN. Аргумент pSrc представляет собой массив байтов структур HSZPAIR. Размер массива - аргумент cb.
Мне удалось преобразовать одну структуру в массив байтов, учитывая учебное пособие по адресу http://www.developerfusion.com/article/84519/mastering-structs-in-c/. Преобразование всего списка структур в массив байтов - это то, что бросает меня за цикл. – dmjones