当前位置:  开发笔记 > 编程语言 > 正文

这个字段怎么样?

如何解决《这个字段怎么样?》经验,为你挑选了1个好方法。



1> Lucas Trzesn..:

这是线索:

[DataContract]

对.DataContractSerializer没有调用任何构造函数.相反,它用于FormatterServices.GetUninitializedObject创建将反序列化的对象.这会绕过构造函数调用.

你的初始化者:

private List _hydratedProperties = new List();

由编译器转换为隐式默认构造函数.

作为解决方法,您可以使用反序列化回调OnDeserializingAttribute:

[DataContract]
public abstract class EntityBase : INotifyPropertyChanged
    where TSubclass : class
{
    private List _hydratedProperties;

    protected EntityBase()
    {
        Init();
    }

    private void Init()
    {
        _hydratedProperties = new List()
    }

    [OnDeserializing]
    private void OnDeserializing(StreamingContext context)
    {
        Init();
    }

    // ... rest of code here
}

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有