Comment remplir TODO pour que ce test réussisse?Unity Container: utiliser ContainerControlledLifetimeManager par défaut pour le groupe de méthodes "Resolve"
class MyClass { }
[Test]
public void Singleton_by_default_test()
{
var parentContainer = GetUnityContainer();
var container = parentContainer.GetChildContainer();
// TODO: Add magic here (but do NOT explicitly register MyClass in container!)
Assert.AreSame(container.Resolve<MyClass>(), container.Resolve<MyClass>());
}
Mise à jour: Il y a une manière qui utilise l'héritage.
public class SingletonContainer : UnityContainer
{
public override object Resolve(Type t, string name)
{
var obj = base.Resolve(t, name);
RegisterInstance(t, name, obj, new ContainerControlledLifetimeManager());
return obj;
}
}
J'utilise container.GetChildContainer() pour obtenir instance de récipient de sorte que cette méthode ne me pas suite.
Vous enregistrez le type explicitement. Je ne veux pas savoir à l'avance tous les types dont j'ai besoin. –