2011-01-12 125 views
98

更新我的服务参考时收到错误消息:如何检索LoaderException属性?

自定义工具警告:无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息。

如何检索LoaderException属性?

更新:当我重新导入域对象项目时,我的错误消失了。我不知道为什么这解决了这个问题,但我很高兴它的工作。

+4

您是如何解决这个问题的? “重新导入域对象项目”是什么意思? (删除对项目的引用并重新添加它?) – Entrodus 2012-06-01 08:13:39

+0

是............ – rozon 2012-06-13 17:14:54

回答

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

我不知道编写无故障代码,所以服务中可能存在问题。然而,当我使用svcutil生成代码时,我得到的代码看起来正确,但我的类型被重用(女巫实际上是我的主要问题) – rozon 2011-01-12 11:25:45

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

我是复活旧线程抱歉,但想后不同的解决方案,以拉动装载机异常(使用实际ReflectionTypeLoadException)给其他人碰到这一点。

0

另一种方法为那些谁是探测和/或在交互模式下身边:

$错误[0] .Exception.LoaderExceptions

注:[0]抓住最近的来自堆栈的错误