我目前正在开发一个使用Linq-to-SQL类的非常基本的应用程序。我一直在为自动生成的数据类添加新方法和属性,方法是利用它们是“部分”的事实。"但是,现在我想实际修改一个类方法中包含的代码 - 即SendPropertyChanged()。
我能看到的最简单的方法是修改自动生成的.designer.cs文件中的代码,但我可以看到这是多么危险(因为代码生成器可能会覆盖代码) 。有没有其他方法可以安全地修改代码?
编辑:为什么我要这样做:我想添加一个属性" isDirty"每当更改任何字段时设置。因为无论何时更改字段,它都会调用SendPropertyChanged方法,我想我只会坚持" isDirty = true"在那里(进行适当的检查)。
答案 0 :(得分:0)
不建议更改自动生成的文件,因为很明显的原因是每次更改内容并且IDE生成它们时都会替换它们。
如果你真的想要修改它们,并且因为它们是partial
类,你可以将它们重新定义为部分或更好,如果你可以将它们子类化。
您可以使用Extension Methods
进行另外一个选项,这是一种非常简单的方法,可以在不修改类的情况下向类添加功能
答案 1 :(得分:0)
这里的想法是您将代码添加到On*Changing
和On*Changed
方法中,例如:
partial void OnNameChanged() {
// my code here
}
你 也可以订阅PropertyChanging
/ PropertyChanged
,但这通常是不好的做法(订阅你自己的事件),并且会产生性能开销。