Je reçois un avertissement d'analyse de code sur certains de mes tests unitaires:Analyse du code d'avertissement CA2000: appeler Dispose sur l'objet 'nouveau ContainerControlledLifetimeManager()'
WidgetManagerTests.cs (40): CA2000: Microsoft .Reliability: Dans la méthode 'WidgetManagerTests.TestInitialize()', appel System.IDisposable.Dispose sur objet 'nouveau ContainerControlledLifetimeManager()' avant que toutes les références à ce sont hors de portée .
J'utilise l'unité et Moq, c'est la ligne incriminée:
var loggingServiceMock = new Mock<ILoggingService>();
this.unityContainer.RegisterInstance<ILoggingService>(loggingServiceMock.Object, new ContainerControlledLifetimeManager());
Merci, cela fonctionne bien que j'utilisé un utilisant déclaration pour rendre le code un peu plus simple. – tjrobinson
Une instruction using à la place du try/catch ci-dessus entraînera la disposition du gestionnaire de durée de vie même s'il n'y a pas d'exception. Cela n'entraînerait vraisemblablement pas le comportement auquel vous vous attendez lorsqu'aucune exception n'est générée. Avez-vous testé le comportement du code après votre modification? –
@NicoleCalinoiu Qu'en est-il de: * this.unityContainer.RegisterInstance (loggingServiceMock.Object, this.unityContainer.Resolve ()); * –
Samuel