你可以这样做(假设
myConnectionString
是字符串实例):
container.Configure(r => r
.ForConcreteType<MyServiceClass>()
.Configure.Ctor<string>().Is(myConnectionString));
如果还需要从接口(或抽象基类)映射MyServiceClass,可以这样做:
container.Configure(r => r
.For<IServiceClass>()
.Use<MyServiceClass>()
.Ctor<string>().Is(myConnectionString));
如果以前在容器中配置了命名连接字符串,则可以执行以下操作:
container.Configure(r => r
.For<string>()
.Use("foo")
.Named("connStr1"));
container.Configure(r => r
.For<string>()
.Use("bar")
.Named("connStr2"));
container.Configure(r => r
.ForConcreteType<MyServiceClass>()
.Configure.Ctor<string>().Is((IContext ctx) =>
ctx.GetInstance<string>("connStr2")));