在懒惰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)
你正在寻找ResolvedParameter,也可以作为过载WithParameter():
builder.RegisterType<RootService>()
.WithParameter((pi, c) => pi.ParameterType == typeof(IChildService),
(pi, c) => c.ResolveNamed<IChildService>(key));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |