我尝试使用xml请求内容类型将请求发布到Asp.Net Web MVC。 在服务器中,我有这样的枚举对象:
[DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)]
[Serializable]
public enum SampleTypes
{
[EnumMember]
Invalid = 0,
[EnumMember]
Manual = 1,
[EnumMember]
Automated = 2
}
如果我发送带有枚举内容<SampleTypes>Manual</SampleTypes>
的请求,它可以正常工作,但如果我使用枚举类型的值<SampleTypes>1</SampleTypes>
,则会出错:
无效的枚举值&#39; 1&#39;无法反序列化为类型&#39; SampleTypes&#39;。确保存在必要的枚举值,并且如果类型具有DataContractAttribute属性,则使用EnumMemberAttribute属性标记
所以我改变代码使用[EnumMember(Value =&#34;&#34;)],例如:
[DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)]
[Serializable]
public enum SampleTypes
{
[EnumMember(Value="0")]
Invalid = 0,
[EnumMember(Value="1")]
Manual = 1,
[EnumMember(Value="2")]
Automated = 2
}
然后<SampleTypes>1</SampleTypes>
的枚举内容正常,但另一个会有错误。
所以我的问题是有任何想法可以帮助双方处罚吗?谢谢!
顺便说一句,对于xml序列化,我使用DataContractSerializer,代码示例:
var deserializer = new DataContractSerializer(typeof(T));
return (T)deserializer.ReadObject(serialData);