首先,我开始使用StructureMap,但任何DI框架的示例都可以。
我有一个类如下所示,
public class GeoData
{
public List<Country> GetCountries()
{
IDbConnection con = new SqlConnection(ConfigurationManager.ConnectionString["GeoDataConnection"])
//Sql stuff to return countries from a database
}
}
这只是对类实际外观的简单概述,但基本上就是这样。
现在,我有一个新的需求。我需要能够在类的初始化或方法上更改连接字符串。例如:
public void Do()
{
var geoData = new GeoData();
if(x)
{
geoData.ConnectionString = ConfigurationManager.ConnectionString["LIVEGeoDataConnection"]);
}
else
{
geoData.ConnectionString = ConfigurationManager.ConnectionString["STAGINGGeoDataConnection"]);
}
geoData.GetCountries();
}
使用依赖注入有更好的解决方案吗?您会如何使用所选的 DI 框架来实现此操作?