C # Преобразование байтового массива в общий список - PullRequest
2 голосов
/ 25 октября 2009

У меня есть собственный список, который я хочу встроить в качестве ресурса, чтобы его можно было копировать при каждой новой установке. Однако мой список сериализуется как двоичный файл, и когда я добавляю его как ресурс, я не могу просто скопировать его, потому что C # обрабатывает его как байтовый массив. Мне нужно иметь возможность преобразовать этот байтовый массив обратно в мой пользовательский список, когда я извлекаю файл из моих ресурсов. Может кто-нибудь дать мне представление о том, как выполнить это преобразование?

Спасибо!

Ответы [ 3 ]

6 голосов
/ 25 октября 2009

Как вы его сериализовали? Обычно вы просто изменили бы этот процесс. Например:

BinaryFormatter bf = new BinaryFormatter();
using(Stream ms = new MemoryStream(bytes)) {
    List<Foo> myList = (List<Foo>)bf.Deserialize(ms);
}

Очевидно, вам может понадобиться настроить это, если вы использовали другой сериализатор! Или, если вы можете получить данные как Stream (а не byte[]), вы можете потерять шаг MemoryStream ...

1 голос
/ 25 октября 2009

Вам необходимо десериализовать массив байтов обратно в экземпляр вашего списка. Способ сделать это зависит от механизма, с помощью которого вы его сериализовали. Если вы использовали BinaryFormatter для его сериализации, например, используйте его для десериализации.

1 голос
/ 25 октября 2009

Как сериализуется список? У вас должен быть доступ к эквивалентному Deserialize() методу, результат которого вы можете привести к исходному типу списка.

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