2010-10-01 20 views
6

Tengo una clase formada por dos clases parciales.anula un método que usa una clase parcial

Creado por la generación de código ORM y uno para extensiones.

En esta instancia particular, necesito anular una de las propiedades generadas por la clase parcial porque primero necesito validarlo.

¿Es posible utilizar mi clase de extensión para anular la propiedad de la clase parcial de generación de código?

Respuesta

10

No, no es posible. Si usted es el propietario de la generación de código, debe poner ganchos para manejar ese escenario. Por ejemplo, para SqlMetal.exe LinqToSql produce clases parciales en la que cada colocador propiedad se ve un poco como esto:

if (this.myProperty != value) 
{ 
    this.OnMyPropertyChanging(value); 
    this.SendPropertyChanging(); 
    this.myProperty = value; 
    this.SendPropertyChanged("MyProperty"); 
    this.OnMyPropertyChanged(); 
} 

Por supuesto, el generador también crea esos métodos cambio/cambio específicas de la propiedad, sino que declaran los parciales como :

partial void OnMyPropertyChanging(string newValue); 
partial void OnMyPropertyChanged(); 

Con esta configuración, es obviamente bastante fácil acceder a estos eventos para la clase parcial de extensión.

Cuestiones relacionadas