Autofac找不到最贪婪的构造函数
本文关键字:构造函数 贪婪 找不到 Autofac | 更新日期: 2023-09-27 18:22:06
我正试图使用Autofac在引用的dll中找到最贪婪的构造函数。
它没有找到它,只找到一个无参数构造函数。
这是两个因素:
public SimpleAuthenticationController() { .. }
public SimpleAuthenticationController(IAuthenticationCallbackProvider callbackProvider) : this()
下面是我用autofac
:注册这些东西的方法
var builder = new ContainerBuilder();
builder.RegisterType<SampleMvcAutoAuthenticationCallbackProvider>().As<IAuthenticationCallbackProvider>();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterControllers(typeof(SimpleAuthenticationController).Assembly);
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
没有什么太复杂的。
但这是我能想到的唯一奇怪的事情。
typeof(MvcApplication)
与global.asax
中存在此代码的项目相同typeof(MvcApplication)
是在一个单独的dll中找到的,我通过AddReferences
手动添加了它
有人看到我做错了什么吗?
问题是我的贪婪被调用了,但如果你看看贪婪的ctor,你会发现我在做: this()
。
这是一个初学者的错误!
所以它调用了贪婪的ctor,但在进入作用域之前,它必须冒泡到另一个无参数的ctor。我一直认为这是跳过贪婪,只打无参数的。