最新的 Autofac 版本不支持 .Net Framework 4.6.2

Latest Autofac version Doesn't support .Net Framework 4.6.2

我的项目是跨平台项目。其中包含 3 个项目 2 .Net-standard 2.0 和一个启动项目与 .Net-framework 4.6.2。

最新的Autofac版本(5.2.0)不支持.NetFramework 4.6.2。

我遇到了错误

autofac.core.registration.componentnotregisteredexception' in autofac.dll" builder.Build() couldn't instantiate the class object.

错误信息:

An exception of type 'Autofac.Core.Registration.ComponentNotRegisteredException' occurred in Autofac.dll but was not handled in user code Additional information: The requested service 'ShipPageObjects.PageObjects.Login.LoginResolvePage' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.

var builder = new ContainerBuilder();
builder.RegisterModule(new ContainerConfig());
builder.RegisterInstance(testConfig).As<ITestConfig>();
builder.RegisterModule(new ShipmentmentTest(testConfig));
builder.RegisterModule(new MaterialTest(testConfig));

Container = builder.Build();

这不是 Autofac 5.2.0 和 .NET Framework 4.6.2 的错误。在例外情况下,它告诉您 ShipPageObjects.PageObjects.Login.LoginResolvePage 未注册。您可能将其注入到您已注册但尚未注册 LoginResolvePage 的内容中。

Autofac 非常擅长告诉您在这些情况下发生了什么故障。您可以逐一查看异常并添加,因为它告诉您需要添加什么,或者追溯您的注入并确保所有内容都已注册。我建议做后者并使用前者来完成它。