更改 Unity 容器的默认生命周期管理器

Changing default lifetime manager of Unity container

有没有办法让 ContainerControlledLifetimeManager 成为 Unity 容器的默认生命周期管理器,它与隐式注册一起使用,例如通过 "registration by convention"?我基本上希望将所有内容都注册为 Singleton,除非明确注册不同。

注意:我将 Unity 与 Prism 库结合使用,因此万一有 Prism 的解决方案也足够了。

使用约定注册时可以指定WithLifetime.ContainerControlled,比如

containerRegistry.GetContainer().RegisterTypes( AllClasses.FromAssembliesInBasePath(),
                                                WithMappings.FromMatchingInterface,
                                                WithName.Default,
                                                WithLifetime.ContainerControlled );

您也可以将您的单身人士放入文件夹 Services 中,并且只向 ContainerControlled.

注册那些