WCF enum - любой способ передать как действительные значения enum, так и числа - PullRequest
2 голосов
/ 07 июня 2010

Предположим, у вас есть:

 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 Ответ

1 голос
/ 07 июня 2010

Да, конечно - вы можете добавить в свой контракт данных второе свойство, которое отражает int-значение перечисления:

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

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

Я думаю, это должно сработать - и MyPriorityAsInt всегда должно точно отражать значение, хранящееся в MyPriority. Если вы хотите, вы можете даже создать метод установки для MyPriorityAsInt, чтобы установить значение MyPriority при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...