Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 枚举XML反序列化_C#_Asp.net Mvc_Datacontractserializer_Xml Deserialization - Fatal编程技术网

C# 枚举XML反序列化

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

我正在尝试使用xml请求内容类型将请求发布到Asp.NETWebMVC。 在服务器中,我有如下枚举对象:

    [DataContract(Namespace = DomainObject.SchemaNamespaceJuly2010)]
    [Serializable]
    public enum SampleTypes
    {
        [EnumMember]
        Invalid = 0,

        [EnumMember]
        Manual = 1,

        [EnumMember]
        Automated = 2
    }
如果我使用enum content
Manual
发送请求,它可以正常工作,但是如果我使用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);