J'ai le code suivant en utilisant le conteneur IoC lightcore. Mais cela échoue avec "NUnit.Framework.AssertionException: les objets contenus sont égaux" ce qui indique que les objets qui devraient être transitoires ne le sont pas.LightCo IoC retourne la même instance quand il devrait en donner une nouvelle
Est-ce un bug dans lightcore, ou est-ce que je le fais mal? Mon allemand n'est pas assez bon pour lire la documentation.
[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");
}
On dirait un bug à moi si vous lisez la documentation. Les objets que vous résolvez directement sont transitoires, les propriétés de ces objets ne semblent pas être ... –
Peut-être que vous pouvez contacter directement l'auteur: http://www.peterbucher.ch/kontakt.aspx. Je n'ai jamais travaillé avec LightCore, donc je ne peux pas vous aider davantage. –