Как получить свойство LoaderException? - PullRequest
115 голосов
/ 12 января 2011

Я получаю сообщение об ошибке при обновлении справочной службы:

Предупреждение о пользовательском инструменте: невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительной информации.

Как я могу получить свойство LoaderException?

Обновление: Мои ошибки исчезли, когда я снова импортировал проекты объектов домена. Я понятия не имею, почему это решило проблему, но я рад, что это работает.

Ответы [ 4 ]

133 голосов
/ 12 января 2011
try
{
  // load the assembly or type
}
catch (Exception ex)
{
  if (ex is System.Reflection.ReflectionTypeLoadException)
  {
    var typeLoadException = ex as ReflectionTypeLoadException;
    var loaderExceptions  = typeLoadException.LoaderExceptions;
  }
}
72 голосов
/ 15 марта 2012
catch (ReflectionTypeLoadException ex)
{        
    foreach (var item in ex.LoaderExceptions)
    {
          MessageBox.Show(item.Message);                    
    }
}

Прошу прощения за воскрешение старого потока, но хотел опубликовать другое решение, чтобы получить исключение загрузчика (используя фактическое исключение ReflectionTypeLoadException), чтобы кто-нибудь еще сталкивался с этим.

1 голос
/ 29 мая 2018

Используя Quick Watch в Visual Studio, вы можете получить доступ к LoaderExceptions из ViewDetails брошенного исключения, например:

($exception).LoaderExceptions
0 голосов
/ 13 февраля 2018

Другая альтернатива для тех, кто исследует и / или в интерактивном режиме:

$ Ошибка [0] .Exception.LoaderExceptions

Примечание: [0] получает самую последнюю ошибку из стека

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...