0

我想做类似Autofac下面这一行的事情DryIoC

builder.RegisterType<TenantDBContext>
().InstancePerLifetimeScope().WithParameter(new 
NamedParameter("connectionString", ""));

我有一个CoreDBContext连接字符串为TenantDBContext. 在注册我的上下文时传递连接字符串是否有效DryIoc

4

1 回答 1

2
container.Register<DbContext>(
    Reuse.InCurrentScope,
    made: Parameters.Of.Name("connectionString", _ => ""));

更新:

假设您要从多个构造函数中自动选择:

这是现场片段

container.Register<DbContext>(
    Reuse.InCurrentScope,
    made: Made.Of(FactoryMethod.ConstructorWithResolvableArguments,
        Parameters.Of.Name("connectionString", _ => "")));

请注意,上面的版本对参数名称更改很脆弱,因此您可以考虑使用强类型构造函数表达式:

container.Register<DbContext>(
    Made.Of(() => new DbContext("")),
    reuse: Reuse.InCurrentScope);
于 2017-05-22T05:07:24.407 回答