如何解决引用库中的依赖关系 class

How to resolve dependencies in referenced library class

ASP.Net Webforms 应用程序 (.Net Framework 4.7.2) 引用了用 .Net 标准 2.0 编写的 dll。在 dll 中,我有一个接口 ISomething,它对 IAnother.

具有 属性 依赖性

使用 Autofac。在 Global.asax Application_Start 我正在注册实现 ISomethingIAnother.

的 classes

执行时,我 ISomtething 得到正确解决;但它的依赖性 IAnother 最终会变成 null(我猜未解决)。

我没有向 ISometing 添加任何 Autofac 代码行;刚刚将 IAnother 添加为 public 属性;我希望两者都能由 Autofac.Web 代码自动解析。 (这是正确的吗?)

编辑:

我更改了实现 ISomething 的 class 的实现以接收 IAnother 作为构造函数中的参数(而不是 属性)...那行得通。

ISomething 是对 WebForm 页面的 属性 依赖。 IAnother 作为 属性 对 ISomething <<<---- 实现的依赖性不起作用。

ISomething 是对 WebForm 页面的 属性 依赖。 IAnother 作为构造函数依赖于 ISomething <<<---- 这工作正常。

我想了解为什么它以一种方式而不是另一种方式工作。

属性 Autofac 中的依赖项是可选的,因此您必须在注册时选择加入。

所以在你的情况下会是:

builder.RegisterType<Something>()
    .As<ISomething>()
    .PropertiesAutowired();