C# (.net 3.5) でアプリを作成していますが、クラスの設計について質問があります。
ファイルにアクセス (読み取り、書き込み) し、そのコンテンツをクラスのユーザー (インスタンス作成者) に提供するクラスを作成したいと考えています。インスタンスに対する最も一般的な操作は、ファイルから特定の値を取得することです。実際の読み取りおよび書き込み (io) 操作は非常にコストがかかるため、ファイル データをメモリに保持し、すべてのインスタンスがこのデータにアクセスできるようにしたいと考えています。このクラスは、さまざまなアプリケーションから同時に使用されるアセンブリに配置されているため、スレッド セーフについて心配する必要があると思います。
スレッドセーフと単体テスト容易性に関してこれを設計するにはどうすればよいですか (単体テストの場合、運用コードとは異なる入力ファイルを使用する必要があります)。どんな助けでも大歓迎です。