Je suis novice en matière d'injection de dépendance. Je me demande comment vous pourriez gérer le scénario suivant. Nous avons quelque chose comme ce qui suit:Comment injecter une dépendance changeante
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";
}
}
Pour les applications Web chaque demande pourrait constituer un autre DatabaseContext pour pointer vers une autre base de données. Pour les formulaires Windows, nous pouvons modifier le DatabaseContext actuel. Comment un di framework gère-t-il une dépendance qui peut changer? De telle sorte que lorsque je demande un IDataAccess, il a toujours le DatabaseContext approprié/actuel.
BTW: IMO, IDataAccess est un nom terrible pour une interface. Essayez d'utiliser un nom qui décrit son comportement. –
Bien sûr, ce n'était qu'un exemple. – Kyle