有没有办法使用IContainerRegistry注册一个方法,使该方法在每次解析对象时都被调用?
例如: builder.Register(c => new ConfigReader("mysection")).As()。
对于Unity,有 Register(Type type, Func<object> factoryMethod)
中的容器抽象。这应该可以完全满足你的愿望。
containerRegistry.Register<IConfigReader>( () => new ConfigReader( "mySection" ) );
但这只是在Prism 8中。
在 Prism 7 中,我们使用了原始的 container
containerRegistry.GetContainer().RegisterFactory( typeof(IConfigReader), x => new ConfigReader( "mySection" ) );
有了Prism 6和之前的产品,就更简单了,因为容器可以马上使用,不需要挖出来。
Container.RegisterFactory( typeof(IConfigReader), x => new ConfigReader( "mySection" ) );