在 ASP.NET MVC 应用程序中,我从控制器调用“服务”方法。
通常,一个名为的控制器ReportingController
调用来自ReportingServices
. 服务类Autofac
使用Mvc.Integration
.
builder.RegisterControllers(Assembly.GetExecutingAssembly());
然后将该服务注入到控制器构造函数中。
public ReportingController(ReportingServices service)
到目前为止,一切都很好。但有时,控制器需要调用其他服务的方法。我更改了 autofac 配置:
builder.RegisterControllers(Assembly.GetExecutingAssembly())
.PropertiesAutowired(PropertyWiringOptions.PreserveSetValues);
并向控制器添加了属性:
public CommonServices CommonService { get; set; } // new properties
public ReportingController(ReportingServices service) {} // existing ctor
然而现在发生的是,当控制器被实例化时,所有属性也被设置,即使它们从未被特定的 ActionMethod 使用。
我如何告诉 Autofac 延迟属性的实例化,直到需要,或者我可能根本不关心这种不必要的初始化?