C# 枚举XML反序列化
我正在尝试使用xml请求内容类型将请求发布到Asp.NETWebMVC。 在服务器中,我有如下枚举对象:C# 枚举XML反序列化,c#,asp.net-mvc,datacontractserializer,xml-deserialization,C#,Asp.net Mvc,Datacontractserializer,Xml Deserialization,我正在尝试使用xml请求内容类型将请求发布到Asp.NETWebMVC。 在服务器中,我有如下枚举对象: [DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)] [Serializable] public enum SampleTypes { [EnumMember] Invalid = 0, [EnumMember] Man
[DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)]
[Serializable]
public enum SampleTypes
{
[EnumMember]
Invalid = 0,
[EnumMember]
Manual = 1,
[EnumMember]
Automated = 2
}
如果我使用enum contentManual
发送请求,它可以正常工作,但是如果我使用enum type的值,如1
,它会出现错误:
无效的枚举值“1”无法反序列化为类型“SampleTypes”。如果类型具有DataContractAttribute属性,请确保存在必要的枚举值并用EnumMemberAttribute属性标记
因此,我将代码更改为使用[EnumMember(Value=”“)],例如:
[DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)]
[Serializable]
public enum SampleTypes
{
[EnumMember(Value="0")]
Invalid = 0,
[EnumMember(Value="1")]
Manual = 1,
[EnumMember(Value="2")]
Automated = 2
}
然后,1
的枚举内容可以正常工作,但另一个将有错误
所以我的问题是,有没有办法帮助双向工作?谢谢
顺便说一下,对于xml序列化,我使用DataContractSerializer,代码示例:
var deserializer = new DataContractSerializer(typeof(T));
return (T)deserializer.ReadObject(serialData);