Добавление дополнительных данных в элемент управления Serialized в качестве комментария - PullRequest
1 голос
/ 06 мая 2011

В моих C # WinForms у меня есть древовидное представление, и я сохраняю содержимое TreeView в виде сериализованного файла.Вот мой код:

Сериализация и сохранение

List<TreeNode> treeNode = new List<TreeNode>();

foreach (TreeNode node in treeViewFiles.Nodes)
{
    treeNode.Add(node);
}

//Serialize az binary
using (Stream file = File.Open(saveList.FileName, FileMode.Create))
{
    BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(file, treeNode);
}

Сериализация и загрузка

BinaryFormatter bf = new BinaryFormatter();

object obj = bf.Deserialize(file); //file is path to file (came from openfiledialog
TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray();

//Add nodes to tree
treeViewFiles.Nodes.AddRange(nodeList);

Вопрос

Итак, теперь у меня есть хорошая функция сохранения и загрузки, но мне нужно добавить некоторые другие данные в тот же файл.Например, я хочу добавить несколько строк в один и тот же файл, и когда они будут загружены, появится всплывающее окно с сообщением, например, имени пользователя, который сохранил этот файл, и некоторых других вещей.Было бы возможно?Любые советы и коды приветствуются!

1 Ответ

3 голосов
/ 06 мая 2011

Вы думаете об этом неправильно.Вместо того, чтобы пытаться добавить аннотации к сериализованному файлу, просто создайте новый сериализуемый класс с необходимой дополнительной информацией, которая инкапсулирует данные, которые вы хотите сериализовать, а затем сериализуйте их.1005 * Затем вместо сохранения триода сохраните SavedData

BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(file, new SavedData<TreeNode>(treeNode));

Я не пытался скомпилировать ничего из этого, но, скорее всего, это правильно ....

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