Lightcore IoC возвращает тот же экземпляр, когда он должен дать новый - PullRequest
2 голосов
/ 12 июня 2010

У меня есть следующий код, использующий контейнер IoC lightcore. Но происходит сбой с «NUnit.Framework.AssertionException: содержащиеся объекты равны», который указывает, что объекты, которые должны быть переходными, не являются.

Это ошибка в Lightcore, или я делаю это неправильно? Мой немецкий недостаточно хорош, чтобы читать документацию.

[Test]
public void JellybeanDispenserHasNewInstanceEachTimeWithDefault()
{
    var builder = new ContainerBuilder();
    builder.DefaultControlledBy<TransientLifecycle>();
    builder.Register<IJellybeanDispenser, VanillaJellybeanDispenser>();
    builder.Register<SweetVendingMachine>().ControlledBy<TransientLifecycle>();
    builder.Register<SweetShop>();

    IContainer container = builder.Build();
    SweetShop sweetShop = container.Resolve<SweetShop>();
    SweetShop sweetShop2 = container.Resolve<SweetShop>();

    Assert.IsFalse(ReferenceEquals(sweetShop, sweetShop2), "Root objects are equal");
    Assert.IsFalse(ReferenceEquals(sweetShop.SweetVendingMachine, sweetShop2.SweetVendingMachine), "Contained objects are equal");
    Assert.IsFalse(ReferenceEquals(sweetShop.SweetVendingMachine.JellybeanDispenser, sweetShop2.SweetVendingMachine.JellybeanDispenser), "services are equal");
}

1 Ответ

1 голос
/ 17 июня 2010

@ Энтони Спасибо за сообщение о проблеме, которая мне очень помогает!

Ошибка должна быть исправлена.Исправление и интеграционный тест передаются в официальный репозиторий SVN по адресу: http://lightcore.ch/download.aspx

Обновление : LightCore 1.4 теперь доступна на указанном выше сайте, ошибка исправлена ​​ в этом выпуске

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...