如何解决使用空属性设置器时,引发Visual Studio警告
| 我需要创建一个可序列化的类。 在此类中,我有一个MyGuid只读属性,我希望该属性可序列化但不可反序列化(在后备字段中初始化了属性)。 您知道,使用基本序列化.NET功能,具有reandonly属性会使反序列化失败,因为它无法反序列化只读属性。 因此,我决定创建一个具有后备字段的公共get-Set MyGuid属性,并使setter不执行任何操作:[Serializable]
public class Task : ITask
{
private readonly Guid m_guid = Guid.NewGuid();
public MyGuid Guid
{
get { return m_guid; }
set { /*Empty setter!*/ }
}
}
现在我不想用脚开枪...
有一种方法可以将MyGuid属性设置为“ deprecable”或“ disabled”?
如果我尝试使用设置器,Visual Studio会警告我会很好。
或者,有更好的方法来管理此类需求?
谢谢!
编辑:在这里找到了一些东西:我正在读取序列化私有成员数据...
解决方法
public Guid Guid
{
get { return m_guid; }
set { if (value != null) Debugger.Log(0,\"Warning\",\"This property has an empty setter,just for serializing purpose!\"); }
}
如果您不小心自己设置了该值,则会在调试窗口中收到警告。另一方面,您绝对需要串行器的设置器,否则反序列化器从文件中读取该属性后将永远无法为其指定一个值!因此,设置程序不适合您,而是串行器正常运行。
,如果您不包括集合,它将自动知道其只读,因此不会让您对其进行设置。然后,当您尝试时,它将在代码中标记错误
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。