Я сейчас работаю над проектом ac #, который использует другую библиотеку .net.Эта библиотека (помимо прочего) анализирует последовательность в дереве.Все элементы имеют некоторый тип, который наследуется от абстрактного класса Sequence
.Мне нужно было немного изменить поведение и подкласс Sequence
сам (давайте назовем это MySequence
).После того, как дерево было создано, я мог заменить некоторые узлы дерева объектами своего собственного класса.
Теперь была опубликована новая версия библиотеки, и была введена функция Copy
со следующей сигнатурой:
internal abstract Sequence Copy();
Я пытался перенести мой код в новую версию и переопределить его, но что бы я ни делал, я получаю две ошибки:
MySequence
не реализует наследуемыйабстрактный член 'Sequence.Copy()
'
и:
MySequence.Copy()
': не найдено подходящего метода для переопределения
Это имеет смысл, поскольку оно является абстрактным (-> оно должно бытьперезаписано) и внутреннее (-> не может быть перезаписано из-за скрытой видимости извне сборки)
Итак, проблема в том, что я понимаю, почему это происходит, но не знаю, что с этим делать,Для моего проекта важно иметь подкласс Sequence
.
И что я также не понимаю, так это то, почему модификатор internal abstract
разрешен в первую очередь, поскольку он в основном разрешает любое создание подклассов всего класса извне сборки!?
Есть лилюбой способ решить это?Через отражение или что-то?
Заранее спасибо!