Aller au contenu
Blog de Kelvas
  1. Posts/

Allô Huston ... Nous avons un problème

·335 mots·2 mins

Mais qu’est-ce que cette erreur ? Vous avez déjà eu ce moment, devant votre débogueur où vous regarder le message d’erreur, vous vous remémorez ce que vous venez de faire que dernières modifications et … rien. Rien n’a de sens.

via GIPHY

J’ai vécu aujourd’hui même un tel moment. Je travaille actuellement sur une nouvelle application en .NET MAUI. Je faisais une classe générique pour la gestion des pages de l’application. J’implémentais cette dernière dans un cas réel et la BOOM 💥 j’ai cette erreur qui s’affiche sur mon Visual Studio :

Image

System. Reflection. TargetInvocationException: ‘Exception has been thrown by the target of an invocation.’

Impossible de trouver ce que cela pouvait bien être. J’ai annulé mes toutes dernières modifications sur Git, mais là encore, pas de changement. Donc sois c’est une modification antérieure, soit j’ai un plus gros problème.

Si comme moi vous faites pas mal de .NET, vous avez l’habitude de supprimer les dossiers bin et obj qui sont souvent la cause de nombreux problèmes. Bien sûr par réflexe je tente cette astuce : mais toujours rien. Alors cette fois je tente d’activer l’arrêt automatique du débogueur pour voir exactement où ce situe le problème, en espérant que se problème vient bien de mon code.

Pour faire ça, si vous ne le savez pas, il faut ouvrir le menu Paramètres d’exceptions.

Image

Dans ce menu je recherche l’exception globale System.Exception et je la coche.

Image

À partir de là je relance l’application en mode débug. Et comme vous pouvez le constater par vous-même, l’erreur est beaucoup plus explicite !

Image

Il manquait donc simplement une référence dans mon injection de dépendance automatique :

application.builder.Services.AddScoped<IDiscussionRepository, FakeDiscussionRepository>();

Donc rien de bien méchant, mais qui aura occasionné bien des recherches et des tests pour quelque chose de simple. Alors si vous aussi vous vous retrouvez dans une situation comme celle-ci, n’hésitez pas à appliquer cette astuce , qui je l’espère, vous aidera à gagner pas mal de temps !

En espérant vous revoir très vite sur mon blog !