格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://www.glasslab.cn/ 进行反序列化时出错: GetAllMemberCardListResponse。InnerException 消息是“无法将无效的枚举值“转让失效”反序列化为类型“HuaAo.Admin.ServiceRef.BeanState”。如果该类型具有 DataContractAttribute 属性,则请确保显示必要的枚举值且标记为 EnumMemberAttribute 属性。”。有关详细信息,请参阅 InnerException。
HuaAo.Admin.ServiceRef.BeanState 是一个枚举,
正常来说, 消息中的数据应该是该枚举的某一个项, 比如, 如果该枚举有Open,Closed 两项, 那么数据中必须为这二者之一. 但是现在你的数据中出现了汉字 "转让失效" , 并且尝试将这四个汉字转成枚举类型HuaAo.Admin.ServiceRef.BeanState, 这是不可能的, 当然就要出错了.
出现这个问题的原因是消息(也就是一个包含了数据的字符串) 中包含了非法数据. 要检查消息是从哪儿发来的, 为什么会出现中文.
不同的类型转换失败
[DataContract]
public class term : terminal
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string termNO { get; set; }
}
http://www.cnblogs.com/LazyBee/archive/2008/02/26/1082553.html
谢谢!
GetAllMemberCardListResponse方法里面反序列化的问题,没代码,只能你自己调试了。
public enum BeanState
{
[EnumMember(Value = "Null")]
Null = 0,
[EnumMember(Value = "Pushed")]
Pushed = 1,
}
反序列化的时候,可以把字符串 "Pushed"自动识别为 BeanState.Pushed。
谢谢!