2010-06-07 82 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