建站代码网

热门标签

对象序列化找不到构造函数的问题

 在使用MemCached的时候,采用二进制序列化,但爆出下面这个错误:

 

“The constructor to deserialize an object of type 'DeserializationIssue.MyDictionary' was not found.”,进过检查,的确该类没有构造函数,于是增加一个,仍然不行,后来从这篇文章知道,还需要一个序列化需要的构造函数,该构造函数接收两个参数,类型分别是:SerializationInfo和StreamingContext 。于是,按照下面的样子即可解决问题:

 

[Serializable]

    public class NamevalueItem : NamevalueCollection

    {

        /// <summary>

        /// 为二进制序列化提供默认构造函数

        /// </summary>

        public NamevalueItem() { }

        protected NamevalueItem(SerializationInfo info, StreamingContext context) : base(info, context) { }

        public List<NamevalueItem> Children { get; set; }

    }

 

X