私は依存性注入が初めてなので、次のシナリオをどのように処理するのだろうかと思っています。次のようなものがあります。
public class DatabaseContext
{
public string ConnectionString {get;}
}
public interface IDataAccess
{
string GetString(int id);
}
public class DataAccessImpl : IDataAccess
{
private DatabaseContext _context;
public DataAccessImpl(DatabaseContext context)
{
this._context=context;
}
public string GetString(int id)
{
return "some data";
}
}
Web アプリケーションの場合、各リクエストは異なる DatabaseContext を構築して、異なるデータベースを指すことができます。Windows フォームの場合、現在の DatabaseContext を変更できます。di フレームワークは、変更可能な依存関係をどのように処理しますか? IDataAccess を要求すると、常に適切な/現在の DatabaseContext が含まれるようになります。