2
не нашел решение следующей проблемы.
У меня был рабочий код для сохранения/загрузки TreeView в файле, но я хочу сохранить его в Properties.Settings.Default.Deserialization MemoryStream через BinaryFormatter
К сожалению, я не получаю ошибку «нет карты для объекта» в этой строке:
object obj = bf.Deserialize(ms);
Вот полный код (де) сериализации:
Не знаю, как решить эту. :(
public static void SaveTreeView(TreeView tree)
{
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, tree.Nodes.Cast<TreeNode>().ToList());
ms.Position = 0;
var sr = new StreamReader(ms);
Properties.Settings.Default.tree = sr.ReadToEnd();
Properties.Settings.Default.Save();
}
}
public static void LoadTreeView(TreeView tree)
{
using (MemoryStream ms = new MemoryStream())
{
var sw = new StreamWriter(ms);
sw.WriteLine(Properties.Settings.Default.tree);
sw.Flush();
ms.Seek(0, SeekOrigin.Begin);
BinaryFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
TreeNode[] nodeList = (obj as IEnumerable<TreeNode>).ToArray();
tree.Nodes.AddRange(nodeList);
}
}
Кто-нибудь получил идею
Спасибо это заранее
Это код, который я модифицирована для использования с MemoryStream Так что да,?.. Это то, что Я хочу в переменной вместо файла. =) –
Я обновил свой ответ ... извините за это – PCG
Спасибо, отлично работает! Должен был подумать об этом преобразовании base64 ранее. знак равно –