在ResolvedParameter valueAccessor中自动获取服务类型

时间:2018-11-09 15:45:47

标签: autofac

为了能够正确解析构造函数参数的对象, 我需要知道我正在注册的实际服务的类型,因为就我而言,我正在注册来自不同程序集的多种类型。 我没有找到通过注册上下文访问它的方法,因为实际的激活不是它的公共财产。 下面的注册示例:

builder
                    .RegisterAssemblyTypes(_assemblies)
                    .AsClosedTypesOf(typeof(IValidationPolicy<,>))
                    .WithParameters(new Parameter[]
                    {
                        new ResolvedParameter((p,c)=>p.Position==0,
                            (p, c) =>
                            {
                             //I need service type here

我是否缺少某些东西,或者是Autofac的限制?

1 个答案:

答案 0 :(得分:1)

我认为 p.Member.DeclaringType应该可以解决问题。 Member属性是解析参数的方法/对象。 DeclaringType属性是声明方法/ ctor的类型。