C# 将内容保存到文件中,然后将其读回并显示
我有一些细节,是画布上的图像,文本框中的XAML和列表框中的项目。如何将所有这些内容保存在一个文件中,而不考虑扩展名。我也应该能够打开这些文件,把所有的内容放回它们的位置,即画布中的图像,文本框中的XAML和列表框中的项目。我试图保存在字符串中的详细信息,并保存它,但我无法再次打开它并放回内容 我用来保存内容的代码是:C# 将内容保存到文件中,然后将其读回并显示,c#,wpf,file-io,save,C#,Wpf,File Io,Save,我有一些细节,是画布上的图像,文本框中的XAML和列表框中的项目。如何将所有这些内容保存在一个文件中,而不考虑扩展名。我也应该能够打开这些文件,把所有的内容放回它们的位置,即画布中的图像,文本框中的XAML和列表框中的项目。我试图保存在字符串中的详细信息,并保存它,但我无法再次打开它并放回内容 我用来保存内容的代码是: String Data = imagesource + xamldata + xamldesign + listboxitems; try { System.IO.Str
String Data = imagesource + xamldata + xamldesign + listboxitems;
try
{
System.IO.StreamWriter file = new System.IO.StreamWriter(saveFileDialog.FileName);
file.WriteLine(Data);
file.Close();
}
这里imagesource是从中获取图像的源。xamldata来自文本框,listboxitems具有列表框中的项目列表。不,不。
这里的情况有点复杂。您应该理解并接受一种称为“序列化”的新模式—列表中的所有这些内容:图像、文本、列表框中的项目具有不同的性质和用途,它们可以轻松地存储在同一个文件中,但应:
1.尊贵的
2.正确处理-即,将图像作为一系列字节,将其放在文件中的某个位置(由长度或数据结构本身定义),然后在加载时从文件中取回,重新创建图像,将其放在画布上,对于文本和元素也是如此
计算机无法读懂你的心思,也无法理解哪些字节会去哪里。由您来“教”It如何正确处理存储的部分信息。通常为此类任务创建一个类,类似于:
public class StoreClass {
public byte[] Image {get;set;}
public string Text {get;set;}
public List<MyListItem> ListContent {get;set;}
}
//here goes MyListItem definition
public class MyListItem {....}
公共类存储类{
公共字节[]映像{get;set;}
公共字符串文本{get;set;}
公共列表ListContent{get;set;}
}
//下面是MyListItem的定义
公共类MyListItem{….}
然后在需要时填充这个类并将其序列化到磁盘上,然后从磁盘加载它(称为“desirialization”的过程),并将其内容放置在正确的位置
你可以读更多