c# – 使用partial类重写方法
发布时间:2020-12-15 04:34:46 所属栏目:百科 来源:网络整理
导读:我有一个由两个部分类组成的类. 一个由ORM代码生成创建,一个用于扩展. 在这个特定的实例中,我需要覆盖由partial类生成的一个属性,因为我需要先对它进行一些验证. 是否可以使用我的扩展类来覆盖代码生成分部类的属性? 解决方法 不,不可能.如果您是代码生成的
我有一个由两个部分类组成的类.
一个由ORM代码生成创建,一个用于扩展. 在这个特定的实例中,我需要覆盖由partial类生成的一个属性,因为我需要先对它进行一些验证. 是否可以使用我的扩展类来覆盖代码生成分部类的属性? 解决方法
不,不可能.如果您是代码生成的所有者,则应该放置钩子来处理该场景.例如,LinqToSql的sqlmetal.exe生成部分类,其中每个属性setter看起来有点像这样:
if (this.myProperty != value) { this.OnMyPropertyChanging(value); this.SendPropertyChanging(); this.myProperty = value; this.SendPropertyChanged("MyProperty"); this.OnMyPropertyChanged(); } 当然,生成器还会创建特定于属性的更改/更改方法,但是它们将这些方法声明为部分: partial void OnMyPropertyChanging(string newValue); partial void OnMyPropertyChanged(); 通过这种设置,显然很容易为扩展分部类接收这些事件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |