aro*_*eer 11 c# resharper automatic-properties serializable
我今天遇到了这个问题,并且能够确定在进行代码清理时,R#不会将属性从支持字段转换为使用SerializableAttribute修饰的类中的自动属性,例如
using System;
namespace DataContracts
{
[Serializable]
public class Class1
{
private bool _wontChange;
public bool WontChange
{
get { return _wontChange; }
set { _wontChange = value; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
在自动代码清理期间,不会更改上述代码.当然,我可以手动执行此操作,我仍然可以从R#获取快速操作菜单选项,以便在单个属性级别执行此操作.但它让我想知道在[Serializable]类中使用自动属性是否存在我不知道的潜在问题.
在JetBrains论坛帖子中,我们提到了一个讨论这个问题的问题,但似乎没有明确解决.
Gam*_*lor 12
当序列化对象时,字段名称等开始变得重要,因为大多数序列化机制使用字段名称来恢复序列化数据.现在,当您更改字段名称时,无法正确读取旧的序列化版本.
转换为自动属性时,后备字段将具有自动生成的名称,该名称与旧名称不匹配.因此,这会在读取旧的序列化数据时引入潜在的问题.
我假设要避免这个陷阱,如果类标记为可序列化,R#不会自动将其更改为自动属性.
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |