在所有注册之后,我正在执行ContainerBuilder.RegisterCallback并订阅所有IComponentRegistration.Preparing和IComponentRegistration.Activating事件,以便能够处理所有激活。通过这两个事件,我能够构建一棵树,事件的顺序如下所示:
- Activating: FirstLevel\_B
但是,如果一些注册不是Per Dependency,我将有一个图而不是树。这案子能办到吗?
发布于 2018-11-15 12:07:18
根据这个答案的说法,还有另一种处理这些事件的方法:
如果您想变得更好,可以在容器
ChildLifetimeScopeBeginning、ResolveOperationBeginning、ResolveOperationEnding和CurrentScopeEnding事件上设置一些事件处理程序。
ChildLifetimeScopeBeginning期间,您需要设置一些东西来自动附加到任何子生命周期ResolveOperationBeginning事件。ResolveOperationBeginning期间,您将记录将要解决的问题。ResolveOperationEnding期间,您会记录出任何异常。CurrentScopeEnding期间,您需要取消订阅该作用域上的任何事件,这样垃圾收集器就可以使用其所有实例清理生存期范围。这很难,但应该做好这份工作。
https://stackoverflow.com/questions/53318662
复制相似问题