当我尝试在ActivatingHandler
中交换实例并使用OnRelease时,我遇到了问题。 OnRelease期望具体类型,而不是“组件类型”。
A
和A2
同时实现IA
的简化示例...
var regBuilder = containerBuilder.RegisterType<A>().As<IA>();
regBuilder.RegistrationData.ActivatingHandlers.Add((sender, e) =>
{
e.Instance = new A2();
});
regBuilder.OnRelease(s => ...); //here generic type s is A and not IA -> BAM!
如果组件超出范围,如果它不是RegisterType
中声明的类型,我如何运行一些发布代码?