[Serializable]public class ObservableCollection2<T> : ObservableCollection<T>,ISerializable{ public ObservableCollection2() : base() { } public ObservableCollection2(SerializationInfo info,StreamingContext context) : base(info,context) { // Put additional code here. } voID ISerializable.GetobjectData(SerializationInfo info,StreamingContext context) { base.GetobjectData(info,context); }}
但我无法访问与序列化相关的那些基本方法.我是否被迫手动重写所有序列化?
解决方法 您可以使用OnDeserializedAttribute
:“当应用于方法时,指定在反序列化对象后立即调用该方法.”请注意,该方法还需要接受 StreamingContext
参数: [Serializable]public class ObservableCollection2<T>: ObservableCollection<T>{ [OnDeserialized()] internal voID OnDeserializedMethod(StreamingContext context) { this.DateDeserialized = DateTime.Now; }}总结
以上是内存溢出为你收集整理的每次反序列化该类的任何实例时,如何在C#类定义中运行代码?全部内容,希望文章能够帮你解决每次反序列化该类的任何实例时,如何在C#类定义中运行代码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)