我查看了 IDIsposable 实现,并且在注册期间,Prism 抛出异常,它不会跟踪此实例。我做了以下工作:
var container = Container.GetContainer();
container.Rules.WithoutThrowOnRegisteringDisposableTransient();
但这没有帮助,因为它不会将相应的属性切换为 false。 请帮我解决这个问题。
我的 DryIOC 经验非常有限,但是在创建容器时不应该设置规则吗?
我会覆盖PrismApplication.CreateContainerRules
:
protected override Rules CreateContainerRules() => Rules.Default.WithAutoConcreteTypeResolution()
.With(Made.Of(FactoryMethod.ConstructorWithResolvableArguments)
.WithDefaultIfAlreadyRegistered(IfAlreadyRegistered.Replace)
.WithoutThrowOnRegisteringDisposableTransient());