为了能够正确解析构造函数参数的对象, 我需要知道我正在注册的实际服务的类型,因为就我而言,我正在注册来自不同程序集的多种类型。 我没有找到通过注册上下文访问它的方法,因为实际的激活不是它的公共财产。 下面的注册示例:
builder
.RegisterAssemblyTypes(_assemblies)
.AsClosedTypesOf(typeof(IValidationPolicy<,>))
.WithParameters(new Parameter[]
{
new ResolvedParameter((p,c)=>p.Position==0,
(p, c) =>
{
//I need service type here
我是否缺少某些东西,或者是Autofac的限制?
答案 0 :(得分:1)
我认为
p.Member.DeclaringType
应该可以解决问题。
Member
属性是解析参数的方法/对象。 DeclaringType
属性是声明方法/ ctor的类型。