WCF使用時碰到個莫名其妙的異常

來源:互聯網
上載者:User

  昨天在調試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了。不過提示資訊確實不夠明確,讓人看不懂。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.