为dll程序集存储数据的更好解决方案

时间:2017-11-30 07:37:32

标签: c# dll

我正在开发一个应该被常用的dll(例如在nuget中)。简单描述:我的DLL简化了与特定服务的消息交换。它允许发送请求,然后检索响应。服务是异步的,它可以在接受请求后的一小时或一天内创建响应,因此在发出请求后,我的dll会每隔几分钟调用一次服务来检查响应。问题是使用dll的应用程序可以重新启动,因此在内存中存储请求队列不是一个好的选择(我不想丢失有关请求的信息)。也没有将它序列化为文件,因为我无法确定我的dll将在何处使用 - 它可能是pc app,mvc。我的主要选项是:序列化到文件,但是提供一个选项来设置通过web / app.config放置序列化文件的地址或让用户考虑它。但也许有一些关于如何存储请求队列的更好的解决方案?

1 个答案:

答案 0 :(得分:1)

我会将这些配置或数据文件类型放在子文件夹中%appdata% folder。您将拥有此文件夹中文件的写入权限,文档非常广泛。阅读更多here

在C#中,您可以使用以下方式轻松获取此文件夹:

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

或使用节目数据:

var programdata = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);