.net byte [] в список <List <Point>> - PullRequest
0 голосов
/ 14 апреля 2010

Возможно ли преобразовать байтовый массив обратно в List<List<Point>>?

LE: Я сохраняю List<List<Point>> в поле BLOB базы данных. Когда я получаю его, я хочу преобразовать его обратно в List<List<Point>>.

Данные хранятся в базе данных SQLite и задаются с помощью:

...
cmd.Parameters.AddWithValue("@bynaryData", theList);
...

Итак, у меня есть byte[], но я не могу понять, как его преобразовать. Как должна выглядеть де / сериализация?

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

Сначала сериализуйте объект в MemoryStream с помощью BinaryFormatter.Serialize (). MemoryStream.GetBytes () теперь возвращает вам байт [], который вы можете записать в BLOB-объект. Чтение требует десериализации байта [], полученного из большого двоичного объекта, теперь с использованием BinaryFormatter.Deserialize (). Приведение к List<List<Point>>.

XmlSerializer тоже будет работать, капля еще больше. Но он позволяет сохранить сериализованное значение в столбце nvarchar (max) в таблице dbase вместо того, чтобы использовать BLOB-объект. Это безопаснее, поскольку не будет зависеть от версии .NET Framework, важно, если эти данные будут существовать некоторое время. Сериализуйте в StringStream, чтобы получить строковое значение сгенерированного XML.

И последнее, но не менее важное: рассмотрите возможность добавления в базу данных таблицы, в которой можно хранить очки. Это чистый раствор.

1 голос
/ 14 апреля 2010

Если байтовый массив изначально был List<List<Point>> и затем правильно сериализован, тогда да.

С чуть более подробной информацией и примером кода, мы сможем дать вам более точный ответ о том, как.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...