ObjectFactory.Initialize
メソッドに次のマッピングがあります。
expression.For<IFoo>().Singleton()
.Use<SomeFoo>()
.Ctor<string>("url").Is(<fetch from config>)
.Ctor<string>("username").Is(<fetch from config>)
これにより、依存関係として宣言したクラスがIFoo
常に同じインスタンスを取得することが保証されます。
ただし、私のアプリケーションにはSomeFoo
、特定のユーザーに対してオブジェクトがどのように動作するかをシミュレートする必要があるシナリオがあります。GetInstance
次のように使用して依存関係を作成します。
var args = new ExplicitArguments();
args.SetArg("url", <dynamic url>);
args.SetArg("user", <logged in user>);
ObjectFactory.GetInstance<IFoo>(args);
特定の引数を使用したこの呼び出しが、シングルトンへの参照を返すのではなく、新しいオブジェクトを構築することを願っています。
この場合はどうなりますか、またその理由は何ですか?ケースの90%でシングルトンを維持しながら、まれな10%で新しいインスタンスを作成するには、何が必要ですか?