Как объявить базовый класс для ThisDocument? - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу поместить некоторые базовые функции в базовый класс, откуда наследуются все мои документы. Вопрос в том, как я могу объявить этот базовый класс?

Я пробовал с частичным, абстрактным ... но всегда получаю ошибку:

Базовый класс mynamespace.ThisDocument отличается от заявлено в других частях "??

1 Ответ

0 голосов
/ 21 апреля 2020

Звучит так, будто у вас проблемы с частичными занятиями. Не вижу ваш код, но вы, вероятно, объявляете что-то вроде:

partial class Derived : MyBase    // Your code
{
}

Где-то в сгенерированном коде будет:

partial class Derived : TheirBase // Generated code
{
}

Когда эти два слиты в один класс , вы получаете ошибку, потому что в C# вам разрешен только один базовый класс.

Вы можете написать

partial class Derived : TheirBase  // Your code
{
}

, чтобы оба согласились, или

partial class Derived // Your code
{
}

, который по умолчанию принимает базовый класс в другом файле.

Лучшее решение - извлечь базовый класс из предопределенного:

class MyBase : TheirBase
{
}

, а затем изменить сгенерированный код на используйте его:

partial class Derived : MyBase // Generated code
{
}

Подделка сгенерированного кода может быть рискованной, поскольку, если он регенерируется, вы теряете свои изменения, но здесь все должно быть в порядке.

...