我有一个使用我制作的DLL的C#应用程序,我必须在DLL中存储3个必须保持不变的变量,这样我甚至可以在用户关闭程序后获取它们(我需要在每次执行时获取它们)在我将数据写入DLL之后)。我想将它们存储在DLL中,因为我不想使用注册表或使用任何外部文件,所以我想在DLL中使用资源文件来读取/写入我的静态数据。
任何人都可以给我一个如何使用这样的资源数据的示例,或者建议另一种方法来执行此操作而不声明硬编码变量(我不能这样做),或者使用注册表/外部数据文件来存储信息。 / p>
答案 0 :(得分:2)
我建议使用Isolated storage来编写数据。您可以快速启动here。
答案 1 :(得分:0)
使用常规内存映射文件。写入二进制可执行文件是不好的做法,许多(如果不是全部)操作系统将禁止除了最混杂的安全策略设置之外的所有操作系统。
PS。这种存储的流行术语是“数据库”(或程序数据库)。这可以帮助您获得一些谷歌点击。
此外,根据您首选的实施方法,您可以使用内存映射来覆盖您的数据段(这样您就可以拥有它并且吃掉它:将全局静态数据保存在和轻松将它们提交到磁盘)。但是,这更像是C / C ++精神。
在.NET中你必须使用一个巨大的自定义布局结构(意思是,所有引用类型都是不可能的 - 这在C#中比在C ++中更不自然)
所以你最好的选择可能是使用UnmanagedMemoryStream
,使用内置的.NET System.Runtime.Serialization
序列化你的数据(其中XML风格到目前为止更受欢迎,并且很容易从博客和其他来源复制) )。
干杯