是否有任何指南可以将从 C#应用程序保存到自己的外部项目文件中,例如嵌入图片等等。加载以后?感谢。
答案 0 :(得分:1)
您可以在.NET程序集中嵌入任何类型的数据并从中读取,但您无法修改自己的可执行文件,即使可以,也不是一个坏主意。首先,想一想防病毒程序看到EXE在运行时突然发生变化的可能性。
如果您有元数据(图像或任何其他类型的文件),您需要阅读和写入,只需使用文件系统。 Environment
类具有的功能将返回众所周知的每个应用程序和每个用户位置,您可以在其中存储您想要的任何内容。
修改强>
我不确定这是不是你问的问题,但现在就这样了。让我们假设您有一个名为Document
的类,其中包含一些文本和一些图像,这些图像以某种未指定的方式呈现。所以基本上它看起来像这样:
[Serializable]
class Document
{
public string Text { get; set; }
public Image[] Images { get; set; }
}
不确定Image
是什么,我刚刚完成了。使用.NET序列化函数,您可以将其转换为字节流:
Document doc = GetDocumentFromUI();
MemoryStream stm = new MemoryStream(1024);
BinaryFormatter fmt = new BinaryFormatter();
fmt.Serialize(stm, doc);
byte[] data = stm.ToArray();
然后您可以将其保存到文件中。然后,您可以加载该文件并将其转换为文档:
byte[] data = LoadDocumentFromDisk();
BinaryFormatter fmt = new BinaryFormatter();
MemoryStream stm = new MemoryStream(data);
stm.Position = 0;
Document doc = fmt.Deserialize(stm) as Document;
这显然非常粗糙,但您可以在.NET中序列化和反序列化大多数对象,包括一些内置类型。
答案 1 :(得分:0)
不可能做你想做的事。您只能读取嵌入的资源,而不能修改它们。
答案 2 :(得分:0)
只需序列化要保存的数据,并在加载时反序列化。如果您想要编写更具体的数据,您必须确定自己的文件格式。