服务器没有提供有意义的回复

时间:2014-06-25 17:35:08

标签: c# xml wcf enums

我正在运行一个wcf服务而且我正在调用这个方法

public static Estimate Pro_GetEstimate(int estimateID)
        {
            try
            {                
                return GetDeserializedData<Estimate>("ESTIMATE", "<ESTIMATE><ID>0</ID><NAME>Estimate for stuff</NAME><DESCRIPTION>This estimate if for stuff</DESCRIPTION><ESTIMATETYPE>TOPDOWN</ESTIMATETYPE></ESTIMATE>");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex.InnerException);
            }
        }

这是我发送的XML。它只是用于测试,它应该来自存储过程。

<ESTIMATE><ID>0</ID><NAME>Estimate for stuff</NAME><DESCRIPTION>This estimate if for stuff</DESCRIPTION><ESTIMATETYPE>TOPDOWN</ESTIMATETYPE></ESTIMATE>

这是我将其反序列化为

的类
[DataContract]
    public class Estimate
    {
        [DataMember]
        public int ID { get; set; }        
        [DataMember]
        public string  NAME { get; set; }        
        [DataMember]
        public string DESCRIPTION { get; set; }
        [DataMember]
        public ESTIMATETYPE ESTIMATETYPE { get; set; }        
    }

我将XML反序列化就好了。我用这个方法

 private static T GetDeserializedData<T>(string roottAttribute, string xmlToDeserialize) where T : new()
        {
            T deserializedData;

            XmlSerializer eetXmlSerializer = new XmlSerializer(typeof(T), new XmlRootAttribute(roottAttribute));

            using (StringReader stringReader = new StringReader(xmlToDeserialize))
            using (XmlReader reader = XmlReader.Create(stringReader))
            {
                deserializedData = (T)eetXmlSerializer.Deserialize(reader);
            }

            return deserializedData;
        }

一切正常,直到它返回到前端。然后我得到了标题中提到的错误。

我在其他地方读到这可能是枚举问题。

我确实有这个枚举

 [DataContract]
    public enum ESTIMATETYPE
    {
        [EnumMember]
        TOPDOWN,
        [EnumMember]
        BOTTOMUP
    }

但有趣的是,如果我发送带有ESTIMATETYPE的XML为空,那就可以了。

<ESTIMATE><ID>0</ID><NAME>Estimate for stuff</NAME><DESCRIPTION>This estimate if for stuff</DESCRIPTION><ESTIMATETYPE></ESTIMATETYPE></ESTIMATE>

我用其他XML调用GetDeserializedData方法,它工作正常。我只是在这种情况下得到这个错误。

任何想法??

0 个答案:

没有答案