web-dev-qa-db-fra.com

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 d'outil personnalisé: 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'objet de domaine. Je ne sais pas pourquoi cela a résolu le problème, mais je suis heureux que cela fonctionne.

113
rozon
try
{
  // load the Assembly or type
}
catch (Exception ex)
{
  if (ex is System.Reflection.ReflectionTypeLoadException)
  {
    var typeLoadException = ex as ReflectionTypeLoadException;
    var loaderExceptions  = typeLoadException.LoaderExceptions;
  }
}
131
KBoek
catch (ReflectionTypeLoadException ex)
{        
    foreach (var item in ex.LoaderExceptions)
    {
          MessageBox.Show(item.Message);                    
    }
}

Je suis désolé d'avoir ressuscité un ancien fil de discussion, mais je souhaitais publier une solution différente pour extraire l'exception du chargeur (à l'aide de la ReflectionTypeLoadException réelle) afin que quiconque puisse en prendre connaissance.

71
Jacob Saylor

À l'aide de Quick Watch dans Visual Studio, vous pouvez accéder aux exceptions LoaderExceptions à partir de ViewDetails de l'exception levée comme suit:

($exception).LoaderExceptions
1
hugo4711

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

$ Erreur [0] .Exception.LoaderExceptions

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

0
techsaint