私はORM(Nhibernateを使用しますが、そうではありません)を使用するアプリケーションを持っています。など、ユーザ名、データベース名を、だから私は実装しています:依存性注入とユーザー固有のデータ
public interface ISettingsManager
{
Settings MySettings {get;set;}
}
public class Settings
{
public string DbUser{get;set;}
public string DbAddress {get;set;}
public string DbPassword{get;set;}
//...
}
public class SessionProvider
{
[Inject]
public ISettingsManager MySettings {get;set;}
public Session CreateSession
{
//Create Session object using settings passed do MySettings via IoC.
}
}
public static Main()
{
// very beggining of my application, bootstrap the DI container
Bind<ISettingsManager>().To<SettingsManagerImpl>();
// Application run
}
をすべての私のNHibernateのセッションプロバイダはそうDI(Ninject)を経由して、それにISettingsManager
を注入してきた私たちはどこかに合格する必要がNHセッションを作成する
私はそれを簡単に使うことができます。それは害のように機能しますが、今では私のアプリケーションで多くのユーザーをサポートする必要があり、問題はシーンに入ります。
サービスの場所を使わずに、現在のログに記録されているユーザー設定を最良の方法で渡す方法を問われていますか?いいえ、問題はありません。
名前の暴力的なソースにもかかわらず、あなたは魅力的で、害のないように思っています。 –