Prism WPF (Unity) - 注册执行的表达式来创建对象。

问题描述 投票:0回答:1

有没有办法使用IContainerRegistry注册一个方法,使该方法在每次解析对象时都被调用?

例如: builder.Register(c => new ConfigReader("mysection")).As()。

wpf prism
1个回答
1
投票

对于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" ) );
© www.soinside.com 2019 - 2024. All rights reserved.