我正在为 Windows Mobile 开发,因此必须使用 Web 服务而不是 WCF。我有一个通过 Web 服务传递的业务对象,除了一个枚举属性外,它工作正常。无论客户端将其设置为什么,此值始终作为默认值出现在服务器上。很困惑:(
这是在服务器上定义的业务对象中的代码:
public enum TaskTypeEnum { GoodsReceipt, ImportCosting };
[Serializable, DataContractAttribute]
public class TaskContainer
{
[DataMemberAttribute]
public TaskTypeEnum TaskType { get; set; }
...
这是客户端设置此属性的代码:
var container = new TaskContainer();
container.TaskType = TaskTypeEnum.ImportCosting;
service.Save(container);
由于某些未知原因,当此“容器”对象到达服务器时,TaskType 属性始终设置为 GoodsReceipt,无论我在客户端上将其设置为什么。
感谢您的帮助。
最佳答案
需要确保你的枚举也有一个DataContract,否则不会被序列化,每个成员必须有属性EnumMember
[DataContract]
public enum TaskTypeEnum
{
[EnumMember]
GoodsReceipt,
[EnumMember]
ImportCosting
}
关于c# - 无法在 .Net 2.0 Web 服务中传递枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947981/