3

私のアプリは、ログイン モジュールからの接続文字列を保存して、アプリケーション内の他のすべてのモジュール (そのうち 50 程度) で使用できるようにする必要があります。私はもともと、新しい/変更された接続文字列イベントをブロードキャストしてサブスクライブすることで接続文字列を利用できるようにするつもりでしたが、50 個のモジュールのほとんど/すべてがオンデマンドで読み込まれるため、ログイン プロセス中にイベントをサブスクライブできません。ログインプロセスの後にロードされます。私の理解に基づいて、接続文字列を利用可能にするには別のアプローチが必要です。

次に、接続文字列をシェルに配置し、それをロードされたモジュールに公開しようと考えましたが、MVVM パターンを壊して不要な依存関係を導入せずにそれを行う方法を見つけることができません。

上記の 2 つのオプションのいずれかを実装する方法を誰かが知っている場合は、MVVM パターンに従って実行できるかどうかを知りたいと思います。

最善のアプローチは、接続文字列にシングルトンのバリエーションを共有サービスとして使用することだと今考えています。Unity コンテナーが接続文字列を保存できるようにしたいのですが、サービス ロケーターを使用して任意のモジュールでアクセスできますが、これを行う方法がわかりません。性質が似ている例は、MEF や Silverlight にあります。 誰かが WPF でこれを行ったことがありますか、または接続文字列シングルトンを作成して Unity コンテナーに追加する方法の例がありますか? ガイド、チュートリアル、またはいくつかのコード スニペットをいただければ幸いです。

注:私は Prism と Unity を使用しており、バックエンドで Oracle を使用しており、アプリは Citrix サーバーにデプロイされます (セキュリティの名の下に、開発者が app.config に書き込むことをブロックしています)。そのため、そのアプローチを使用できません。 . また、接続文字列にシングルトンを使用すると、複数のユーザーが Citrix からアプリを実行するときに問題が発生しますか? すべてのユーザーが独自のシングルトン接続文字列を持つことになりますか? そうでない場合、私の質問全体が変わります。すべてのモジュール間で接続文字列を渡す/保持するために使用できる良いアプローチはありますか?

4

2 に答える 2