gpt4 book ai didi

c# - 如何让 CaSTLeWindsor 在调用 Resolve 时创建一个新实例

转载 作者:行者123 更新时间:2023-11-30 15:07:45 26 4
gpt4 key购买 nike

我有以下代码:

public interface IService { }
public class MyService : IService { }

和测试方法

[Test]
public void T1()
{
IWindsorContainer container = new WindsorContainer();

container.Register(Component.For<IService>()
.ImplementedBy<MyService>());

var s1 = container.Resolve<IService>();
var s2 = container.Resolve<IService>();
Assert.AreNotSame(s1, s2);
}

我应该更改什么才能通过测试?

最佳答案

将生活方式设置为Transient:

container.Register(
Component.For<IService>()
.ImplementedBy<MyService>()
.LifeStyle.Transient
);

默认的生活方式是 Singleton,这就是您看到相同实例的原因。

关于c# - 如何让 CaSTLeWindsor 在调用 Resolve 时创建一个新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279580/

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