Autofac lazy TypedParameter

Kon*_*rin 6 autofac

在懒惰Autofac可能TypedParameter吗?更重要的是,我需要在注入参数时访问容器.代码可能如下所示:

builder.RegisterType<RootService>()
    .WithParameter(TypedParameter.From(c => c.Resolve<IChildService>(key)));
Run Code Online (Sandbox Code Playgroud)

更新

基于Nick的回答,我创建了以下帮助方法:

public static class TypedResolvedParameter 
{
    public static ResolvedParameter From<T>(Func<IComponentContext, T> factory)
    {
        return new ResolvedParameter(
            (pi, c) => pi.ParameterType == typeof(T),
            (pi, c) => factory(c));
    }
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*rdt 9

你正在寻找ResolvedParameter,也可以作为过载WithParameter():

builder.RegisterType<RootService>()
  .WithParameter((pi, c) => pi.ParameterType == typeof(IChildService),
                 (pi, c) => c.ResolveNamed<IChildService>(key));
Run Code Online (Sandbox Code Playgroud)