Как найти все классы, которые расширяют класс во внешней библиотеке в Visual Studio или где-либо еще? - PullRequest
0 голосов
/ 07 сентября 2018

Предполагая, что я знаю, что такое конкретный базовый класс, Visual Studio предоставляет способ перечисления всех классов, которые расширяют этот базовый класс (а также те, которые расширяют их)? А как насчет внешней визуальной студии?

Я специально говорю о базовых классах и расширениях классов как из внешней библиотеки.

Например, я пытаюсь найти список всех сервисов, расширяющих IServiceProvider. Базовый класс находится в пространстве имен System, а классы, расширяющие его, находятся в ряде различных пространств имен.

1 Ответ

0 голосов
/ 08 сентября 2018

CTRL+F12, вероятно, ваш друг здесь. Вам нужно перейти к реализации. Итак, сначала выберите класс base в файле кода и нажмите CTRL + F12. Поэтому в приведенном ниже примере кода выберите класс Class1 в определении или определении для Class2.

В качестве альтернативы, вы можете перемещаться по определениям, используя Object Browser CTRL+W,J. Это позволяет перемещаться по всем типам, загруженным в решение и другие сборки, расположенные в GAC.

ObjectBrowser

Resharper предлагает хорошую навигацию по типам, которая немного выходит за рамки этого, так как это платный инструмент.

Find Usage Advanced

Вот мой пример кода:

using System.Text;

namespace SOLib
{
    public class Class1
    {
    }

    public class Class2 : Class1
    {
    }

    public class Class3 : Class2
    {
    }

    public class MyEncoder1 : ASCIIEncoding
    {
    }

    public class MyEncoder2 : ASCIIEncoding
    {
    }

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