gpt4 book ai didi

.net - Microsoft Unity 中的转发类型

转载 作者:行者123 更新时间:2023-12-02 15:02:07 24 4
gpt4 key购买 nike

如何在Unity框架中使用单个组件提供多个服务?

在 Windsor 中,它的配置方式如下:

var container = new WindsorContainer();
container.Register(Component.For<Service1, Service2>()
.ImplementedBy<Component>());

var service1 = container.Resolve<Service1>();
var service2 = container.Resolve<Service2>();

转发类型的想法是,如果组件是单例,service1service2 是同一个实例

最佳答案

此测试通过:

[Fact]
public void ContainerCorrectlyForwards()
{
var container = new UnityContainer();
container.RegisterType<IService1, MyComponent>(
new ContainerControlledLifetimeManager());
container.RegisterType<IService2, MyComponent>(
new ContainerControlledLifetimeManager());

var service1 = container.Resolve<IService1>();
var service2 = container.Resolve<IService2>();

Assert.Same(service1, service2);
}

关于.net - Microsoft Unity 中的转发类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3758985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com