2010-06-07 97 views
2

假設您有:WCF枚舉 - 任何方式轉讓雙方有效的枚舉值和數字

public enum Priority : short 
     { 

      Low = 100 
      Normal = 200, 
      High = 300 
     } 

我想打電話WCF服務與以下調用

myWCF.call(Priority.Low); 
myWCF.call(Priority.High); 
myWCF.call(105); 

這是可能做到無需重寫WCF堆棧的一半?我更喜歡將所有WCF配置設置爲枚舉類型的解決方案。

謝謝。

+1

你在問什麼? – SLaks 2010-06-07 15:37:34

+0

你問你是否可以在WCF中有一個重載的方法?我不知道爲什麼你認爲你需要重寫WCF堆棧。我想你會很驚訝WCF是如何可擴展的。 – 2010-06-07 15:52:09

回答

1

是的,沒錯 - 你可以第二個屬性添加到您的數據合同,反映了枚舉的整型值:

[DataContract] 
public class YourData 
{ 
    [DataMember] 
    public Priority MyPriority { get; set; } 

    [DataMember] 
    public int MyPriorityAsInt 
    { 
     get { return (int)MyPriority; } 
     set { ; } 
    } 
} 

我認爲這應該工作 - 和MyPriorityAsInt應該總是準確地反映價值存儲在MyPriority。如果需要,甚至可以根據需要爲MyPriorityAsInt創建設置方法以設置值MyPriority