Передача параметра WCF сервиса, имеющего тип перечисления - битового поля
Далее будет рассказано как передать параметр WCF сервиса типа enum, если этот enum используется как битовое поле.
Пусть есть WCF сервис со следующим методом:
[ServiceContract]
public interface IService1
{
[OperationContract]
FlagsEnum GetEnum(FlagsEnum e);
}
где
public enum FlagsEnum
{
Flag1,
Flag2
}
И мы хотим вызывать метод сервиса следующим образом:
var c = new Service1Client();
var result = c.GetEnum(FlagsEnum.Flag1 | FlagsEnum.Flag2);
Для этого всего лишь нужно добавить в enum FlagsEnum необходимые атрибуты:
[DataContract]
[Flags]
public enum FlagsEnum
{
[EnumMember]
Flag1 = 1, //Было исправлено
[EnumMember]
Flag2 = 2 //Было исправлено
}
Ссылка на проект: FlagsEnumThroughWcf.zip
arusland.blogspot.com
23.07.2009 11:08
Пример:
public enum FlagsEnum
{
Flag1 = 0x01,
Flag2 = 0x02,
Flag3 = 0x04
}
PS: Чем пользуешься для подсветки кода?