赋值相同引用时Setter未执行,如何强制触发?
如何确保引用类型属性的Setter被执行?
我的Setter代码在此处未执行,推测是由于赋值的是同一个引用(设计如此)。请问是否有语法可确保Setter执行?
var settings = new Settings(); var a = settings.ReferenceVariable; a.Value1++; settings.ReferenceVariable = a; // Setter is not running here, so changes to 'a' are not persisted in database // One workaround is to set to a different value, then set back to my value. This isn't a good solution for me settings.ReferenceVariable = null; // Setter does run settings.ReferenceVaraible = a; // Setter does run public class Settings { public MyClass ReferenceVariable { get => GetSettingValueFromDatabase(); set => SetSettingValueToDatabase(value); } }
编辑补充:感谢各位的帮助,我已找到问题根源——我使用了Fody/PropertyChanged包,它会修改属性setter并检查变更,这些修改在调试时不可见,因此排查起来较为困难。
内容的提问来源于stack exchange,提问作者barrett777
相关产品推荐
相关产品推荐

