【发布时间】:2008-11-08 12:52:41
【问题描述】:
我是依赖注入的新手,我想知道您将如何处理以下情况。我们有如下内容:
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。
【问题讨论】:
-
顺便说一句:IMO,IDataAccess 是一个糟糕的接口名称。尝试使用描述其行为的名称。
-
当然,这只是一个例子。
标签: c# dependency-injection ioc-container