2017-11-30 7 views
1

一般的に使用されるはずのdll(例えば、ナゲット)を開発しています。簡単な説明:私のDLLは特定のサービスとのメッセージ交換を簡単にします。要求を送信し、応答を取得することができます。サービスは非同期であり、要求を受け付けてから1時間または1日後に応答を作成できます。要求を出した後、dllは応答をチェックするために数分おきにサービスを呼び出します。問題は、dllを使用するアプリケーションを再起動できるため、メモリに要求キューを格納するのは良い選択ではない(私は要求に関する情報を失いたくない)ということです。それはファイルにシリアライズしていないので、私はどこで私のDLLが使用されるかわからないので - それはPCアプリ、mvcかもしれない。私の主な選択肢は、ファイルにシリアライズすることですが、web/app.configを使ってシリアライズされたファイルをどこに配置するかを指定するオプションを与えたり、ユーザーに考えさせるようにしたりします。しかし、おそらく、要求のキューを格納する方法について、より良い解決策がありますか?dllアセンブリ用のデータを格納するためのより良いソリューション

+0

あなたは%APPDATA%フォルダを使用してもらえますか? – Chrille

+0

@Chrilleとても簡単ですか?それはよい考えです –

答えて

1

%appdata% folderには、これらのタイプの構成ファイルまたはデータファイルをサブフォルダに入れます。このフォルダ内のファイルへの書き込みアクセス権があり、ドキュメントは広範囲です。続きを読むhere

C#で簡単に使用して、このフォルダを取得することができます:

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

またはプログラムのデータを使用します。

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

ありがとう、いい記事です。私は潜在的にIISアプリケーションで使用することができます(したがって、appdataはrealiableではない)dllのappdataを使用しているとは思わないが、programdataフォルダは良い選択肢と思われる。 –

+0

はい、プログラムデータも有効です。 – Chrille

関連する問題