[英]Using ConnectionString name in parameter
我目前在web.config中有一个autofac部分,如下所示。
<autofac>
<components>
<component type="MilepointLog.Repositories.Repository, MilepointLog.Repositories"
service="MilepointLog.Repositories.IITDMilepointRepository, MilepointLog.Repositories">
<parameters>
<parameter name="connectionString" value="test" />
</parameters>
</component>
</components>
</autofac>
我需要做的是使用我在此代码上方的连接字符串作为值。 connectionStringName
称为MilePointLog 。
以下是我的Global.Asax中包含其他autofac代码的部分。
var builder = new ContainerBuilder();
builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
builder.RegisterType<Service>()
.As<IITDMilePointService>().InstancePerRequest();
//builder.RegisterType<Repository>()
// .As<IITDMilepointRepository>()
// .WithParameter("connectionString", ConfigurationManager.ConnectionStrings["MilePointLog"].ConnectionString);
builder.RegisterType<HomeController>()
.InstancePerRequest();
我正在尝试做什么,如果可以,你能告诉我怎么做?
Autofac不支持您想要的开箱即用。
我建议的解决方案是更改Repository
的实现以接受命名的连接字符串。
public class Repository
{
public Repository(String connectionStringName)
{
String connectionString =
ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
// ...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.