Ma classe est héritée de UnityContainer (Unity 2.0), voici le code source:récursivité dans l'unité et Evacuer la mise en œuvre de modèle
public class UnityManager : UnityContainer
{
private UnityManager()
{
_context = new MyDataClassesDataContext();
// ...
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
_context.Dispose();
}
base.Dispose(disposing);
}
private readonly CMCoreDataClassesDataContext _context;
}
Lorsque la méthode Dispose est appelé à l'instance de la classe UnityManager tomber dans récursivité. .. Pourquoi? Pour autant que je sache, base.Dispose doit appeler la méthode Dispose de la classe de base seulement ... n'est-ce pas? Qui rappelle le Dispose (bool) de UnityManager? Comment éviter cela?
Merci.
Vous ne devriez pas enregistrer le conteneur avec lui-même. Voir la publication sur http://unity.codeplex.com/Thread/View.aspx?ThreadId=46415#Post156036 pour plus de détails. –
Pas un lof de détails sauf: ne jamais enregistrer un conteneur avec lui-même. C'est déjà fait pour vous (nouveau dans Unity 1.2) donc vous ne gagnez rien, et vous aurez un débordement de pile au moment de la disposition. Ajoutez simplement une dépendance à IUnityContainer dans vos objets et cela fonctionnera. Mais cela m'explique beaucoup. :) Je vous remercie! – Budda