繁体   English   中英

在参数中使用ConnectionString名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM