使用空属性设置器时,引发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!\"); }
}
如果您不小心自己设置了该值,则会在调试窗口中收到警告。另一方面,您绝对需要串行器的设置器,否则反序列化器从文件中读取该属性后将永远无法为其指定一个值!因此,设置程序不适合您,而是串行器正常运行。     
如果您不包括集合,它将自动知道其只读,因此不会让您对其进行设置。然后,当您尝试时,它将在代码中标记错误     

要回复问题请先登录注册