zoukankan      html  css  js  c++  java
  • WCF使用时碰到个莫名其妙的异常

      昨天在调试WCF服务时,碰到个异常,异常信息都让人看不懂。之前也没碰到过,折腾了一会才弄明白原因。

      像往常一样创建一个WCF库,就是可直接调试的那种WCF服务。然后加入了一个服务,该服务还用到了复杂自定义类型作为DataContract,并像往常一样启动调试,居然蹦出了一个错误提示框,里面有一些错误信息, 命名空间“TestNamespace.System”中不存在类型或命名空间名称“Runtime”(是缺少程序集引用吗?),如下图:

    其中TestNamespace.System命名空间下是复杂类型所在的命名空间。出现这样的错误,一时让人毫无头绪。为什么回去自定义类型中去寻找Runtime和CodeDom这些东西呢?看起来像要实现什么动态处理的功能,或者动态代码生成。于是问题定位在自己定义的复杂类型中,去掉相关的引用后,改成系统的内置简单类型之后,就不出异常了。但总不能都用简单类型吧,之前也有这样的用法,都是OK的。
      最后求助万能的古戈,发现问题居然是出在命名空间上。原来是命名空间中包含了System关键字,然后系统在运行时会把用户自定义的System命名空间当做了系统内置的System命名空间,然后很自然的去寻找相关的系统类型,结果报出以上错误。更改命名空间的名字之后,问题解决。具体可参见http://stackoverflow.com/questions/3037098/compile-error-the-type-or-namespace-name-runtime-does-not-exist-in-the-names中二楼的回复内容。

         估计.NET中就是这么规定的,其他方面应该也会有这方面的限制,避免有这些关键字就OK了。不过提示信息确实不够明确,让人看不懂。

  • 相关阅读:
    蓝翔杯子校内赛练习代码
    [蓝桥杯][算法训练VIP]猴子分苹果
    系统设计部分代码
    坐标离散化
    蒟蒻吃药计划-治疗系列 #round 1 机器分配+挖地雷
    蒟蒻吃药计划
    F小蒟蒻教你卡常
    最长不下降子序列
    最大子段和(DP)
    luogu P1216 (USACO1.5) Number Triangles
  • 原文地址:https://www.cnblogs.com/shenba/p/2294177.html
Copyright © 2011-2022 走看看