Хорошо, поэтому я создал StaticInheritance Analyzer в Roslyn, и все вроде как работает. Но я должен был понять, что я не мог динамически использовать эти статические методы из базового класса, такие как обычные виртуальные и абстрактные методы (что не могло бы сбить с толку никого, кроме меня). Поэтому я подумал о создании небольшого API, который кэширует все подклассы при запуске, а затем запускает дерево наследования, когда, скажем, вызывает StaticInheritance.Invoke<TKnownBaseClass>(Type subclass, string staticInheritanceMethod)
.
Мой вопрос теперь такой: как бы он справился с созданием объекта с помощью Activator, приведением его к TKnownBaseClass и вызовом его виртуального метода?