MSDN によると、メソッドを使用してオブジェクトの既存のインスタンスを登録した場合、RegisterInstance
Resolve または ResolveAll へのすべての呼び出しに対して、または依存関係メカニズムによってインスタンスが他のクラスに挿入されるときに、コンテナーは同じインスタンスを返します。
dataService
レイヤー用のプロジェクトを作成して使用しました
container.RegisterInstance<IQuoteSource>(new IBQuoteSource());
IQuoteSource
必要なときはいつでも、アプリケーションの存続期間中にインスタンスが 1 つだけ作成されることを期待しています。しかし、コンストラクターでインターフェイスを使用すると、別のプロジェクト アセンブリで別のものIBQuoteSource
が作成されます (コンストラクターがIBQuoteSource
再度呼び出されることがわかります) では、アプリケーション全体でインターフェイスの 1 つの実装を共有する方法は?
public ClickViewModel( IQuoteSource quoteSource)
{
this.quoteSource = quoteSource;
ComboItems = new List<string>() { "GTC Order", "Day Order" };
SelectedComBoItem = ComboItems[1];
}