Как заставить CastleWindsor создать новый экземпляр при вызове Resolve - PullRequest
3 голосов
/ 08 июня 2011

У меня есть следующий код:

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);
}

Что я должен изменить, чтобы пройти тест?

1 Ответ

5 голосов
/ 08 июня 2011

Установите стиль жизни на Transient:

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

Стиль жизни по умолчанию - Singleton, и поэтому вы видите тот же экземпляр.

...