2010-09-27 122 views
1

我正在經歷一個非常基本的Web服務開發的奇怪行爲。這個問題可能是愚蠢的,但我認爲有人可以解釋這個觀察。這是一個命名空間問題?

我開發一個Web方法Web服務,MyWebMethod

MyWebMethod(MyEnum Param, .....) 

其中,

public enum MyEnum : int 
    { 
     Type_1 =1; 
     Type_2 =2; 
     Type_3 =3; 
    } 

現在我用我的客戶端與該服務進行溝通,但對於每一個請求類型,TYPE_1 ,Type_2等服務將其捕獲爲Type_1。例如,如果我在Web服務中的MyWebMethod中創建了一個斷點,我將Type_1看作param1類型。我想這是一個與Namespacing有關的問題。我在代碼中看不到任何其他缺陷。基於經驗的任何想法?

+1

絕對不是 '命名空間' 的問題。無論如何。 – leppie 2010-09-27 06:35:05

+1

發佈您的「客戶端」代碼可能會有所幫助.. – Manish 2010-09-27 06:36:40

+0

那麼您期望什麼呢?你是否希望他們作爲int類型? :) – 2010-09-27 06:41:43

回答

0

如果這是一個WCF Web服務,並且在方法簽名中爲每個值類型生成了一個.NET 2.0客戶端,則會添加一個名爲XXXSpecified的布爾參數,您需要將其設置爲true。查看blog post瞭解更多詳情。

0

我想你的枚舉不需要從int繼承。您在枚舉中提供了名稱和值,這應該足夠了。我假設你的所有代碼都是.NET 2.0。作爲測試,從webservice返回一個枚舉值。只是爲了確保在瀏覽器直接訪問服務時XML序列化按預期工作。