0
有没有办法确定Autofac何时完成实例的初始化? 如果您有懒惰依赖项,或者您通过属性注入依赖项,则可能需要它。autofac实例初始化通知
可能的解决办法是这样的:
public class Component : IKeepMeInformed {
private readonly IOtherComponent otherComponent;
public class Component(Lazy<IOtherComponent> otherComponent) {
this.otherComponent = otherComponent;
}
void IKeepMeInformed.InitializationCompleted() {
// Do whatever you need with this.otherComponent.Value
}
}
谢谢。我知道有这样的机制。我不喜欢更改每个组件的注册详细信息,这需要进行初始化。因此,我想要基于接口的解决方案。 –
确切的情况是这样的:component(ICommand)取另一个组件(ViewModel)并订阅它的PropertyChanged事件。当然,命令一旦可用就应该订阅事件,这通常是在构造函数中完成的。在我的情况下,是循环依赖,并且ViewModel在构造函数中不可用。因此,我希望Autofac在其构建完成时通知组件。 –
但是,您的命令实例的生命周期是否也由ViewModel控制?例如在VM构造函数中创建?或者你是否设想通过容器以某种方式创建命令? –