有什么方法可以使ContainerControlledLifetimeManager成为Unity容器的默认生存期管理器,该容器与隐式注册一起使用,例如通过“按惯例注册”?我基本上希望将所有内容注册为Singleton,除非明确进行了其他注册。
注意:我将Unity与Prism库结合使用,以防使用Prism解决方案也足够。
答案 0 :(得分:0)
使用按惯例注册时,您可以指定WithLifetime.ContainerControlled
,例如
containerRegistry.GetContainer().RegisterTypes( AllClasses.FromAssembliesInBasePath(),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.ContainerControlled );
您还可以将单例放在文件夹Services
中,并仅将其注册到ContainerControlled
。