переопределить метод, используя частичный класс - PullRequest
6 голосов
/ 01 октября 2010

У меня есть класс, образованный двумя частичными классами.

Один создан генерацией кода ORM, а другой для расширений.

В этом конкретном случае мне нужно переопределить одно из свойств, сгенерированных частичным классом, потому что мне нужно сначала выполнить его проверку.

Можно ли использовать мой класс расширения для своего рода переопределения свойства частичного класса генерации кода?

1 Ответ

10 голосов
/ 01 октября 2010

Нет, не возможно.Если вы являетесь владельцем генерации кода, вы должны подключиться для обработки этого сценария.Например, sqlmetal.exe для LinqToSql создает частичные классы, где каждый установщик свойств выглядит примерно так:

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();

При такой настройке, очевидно, довольно легко использовать эти события для частичного класса расширения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...