假设你有:
public enum Priority : short
{
Low = 100
Normal = 200,
High = 300
}
我想通过以下电话
来呼叫WCF服务myWCF.call(Priority.Low);
myWCF.call(Priority.High);
myWCF.call(105);
如果不重写一半的WCF堆栈,这可能吗?我更喜欢作为解决方案,其中所有WCF配置设置都将用于枚举类型。
感谢。
答案 0 :(得分:1)
是的,确定 - 您可以在数据合同中添加第二个属性,该属性反映了枚举的int值:
[DataContract]
public class YourData
{
[DataMember]
public Priority MyPriority { get; set; }
[DataMember]
public int MyPriorityAsInt
{
get { return (int)MyPriority; }
set { ; }
}
}
我认为这应该有效 - MyPriorityAsInt
应始终准确反映MyPriority
中存储的值。如果您愿意,您甚至可以为MyPriorityAsInt
创建setter方法,以根据需要设置MyPriority
的值。