115 votes

Comment récupérer la propriété LoaderException ?

Je reçois un message d'erreur lors de la mise à jour de ma référence de service :

Avertissement sur les outils personnalisés : Impossible de charger un ou plusieurs des types demandés. Récupérez la propriété LoaderExceptions pour plus d'informations.

Comment puis-je récupérer la propriété LoaderException ?

Mise à jour : Mes erreurs ont disparu lorsque j'ai réimporté les projets d'objets de domaine. Je n'ai aucune idée de la raison pour laquelle cela a résolu le problème, mais je suis heureux que cela fonctionne.

135voto

KBoek Points 2150
try
{
  // load the assembly or type
}
catch (Exception ex)
{
  if (ex is System.Reflection.ReflectionTypeLoadException)
  {
    var typeLoadException = ex as ReflectionTypeLoadException;
    var loaderExceptions  = typeLoadException.LoaderExceptions;
  }
}

73voto

Redburn Points 1102
catch (ReflectionTypeLoadException ex)
{        
    foreach (var item in ex.LoaderExceptions)
    {
          MessageBox.Show(item.Message);                    
    }
}

Je suis désolé de ressusciter un vieux fil de discussion, mais je voulais poster une solution différente pour tirer l'exception du chargeur (en utilisant l'exception ReflectionTypeLoadException réelle) pour toute autre personne qui rencontrerait ce problème.

7voto

hugo4711 Points 83

En utilisant Quick Watch dans Visual Studio, vous pouvez accéder aux LoaderExceptions à partir de ViewDetails de l'exception levée comme ceci :

($exception).LoaderExceptions

0voto

techsaint Points 621

Une autre alternative pour ceux qui sondent autour et/ou en mode interactif :

$Error[0].Exception.LoaderExceptions

Note : [0] récupère l'erreur la plus récente de la pile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X