Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为dll程序集存储数据的更好解决方案_C#_Dll - Fatal编程技术网

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

C# 为dll程序集存储数据的更好解决方案,c#,dll,C#,Dll,我正在开发一个应该常用的dll(例如在nuget中)。简单描述:我的DLL简化了与特定服务的消息交换。它允许发送请求,然后检索响应。服务是异步的,它可以在接受请求后一小时或一天内创建响应,所以在发出请求后,我的dll每隔几分钟调用服务以检查响应。问题是,使用dll的应用程序可以重新启动,因此在内存中存储请求队列不是一个好的选择(我不想丢失有关请求的信息)。也没有将其序列化为文件,因为我无法确定我的dll将在哪里使用-它可能是pc应用程序,mvc。我的主要选项是:序列化到文件,但提供一个选项,通过

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

我会将这些类型的配置或数据文件放在列表的子文件夹中。您将有权写入此文件夹中的文件,并且文档内容丰富。阅读更多

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

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
或使用程序数据:

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

你能使用%appdata%文件夹吗?@Chrille这么简单?这是一个好主意,一篇好文章。我不认为在dll中使用appdata可能会在IIS应用程序中使用(因此appdata是不可行的),但programdata文件夹似乎是一个不错的选择。