加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Resharper不会自动转换为Serializable类的自动属性 ??- 我

发布时间:2020-12-15 06:32:35 所属栏目:百科 来源:网络整理
导读:我今天遇到这个问题,并且能够确定,在执行代码清理时,R#不会将属性从具有后台字段的类转换为使用SerializableAttribute装饰的类中的自动属性. using System; namespace DataContracts{ [Serializable] public class Class1 { private bool _wontChange; publi
我今天遇到这个问题,并且能够确定,在执行代码清理时,R#不会将属性从具有后台字段的类转换为使用SerializableAttribute装饰的类中的自动属性.
using System; 

namespace DataContracts
{
    [Serializable]
    public class Class1
    {
        private bool _wontChange;

        public bool WontChange
        {
            get { return _wontChange; }
            set { _wontChange = value; }
        }
    }
}

在自动代码清理期间,上述代码将不会更改.当然,我可以手动执行此操作,我仍然可以从R#中获取快速菜单选项,以在各个属性级别进行操作.但是让我想知道是否有一个潜在的问题,我不知道在[Serializable]类中使用自动属性.

在JetBrains forum thread中,我们将其称为an issue,其中讨论了这个问题,但似乎并没有明确解决.

解决方法

当序列化对象时,字段名称开始变得重要,因为大多数序列化机制使用字段名来恢复序列化数据.现在,当您更改字段名称时,无法正确读取较旧的序列化版本.

转换为自动属性时,后备字段将具有自动生成的名称,与旧名称不符.因此,当读取旧的序列化数据时,会引起潜在的问题.

我假设要避免这个陷阱,如果类被标记为可序列化,则R#不会将其自动更改为自动属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读