Мне нужно получить какой-то граф зависимостей между классами данного проекта, то есть всеми классами, которые использует этот конкретный класс.Я хочу знать, какие классы использует данный класс, чтобы позже я мог найти их путь к файлу в проекте.Рассмотрим следующий простой пример:
public class Dog: Animal, IBark
{
public void Bark()
{
// Code to bark.
}
public void Fight(Cat cat)
{
// Code to fight cat.
}
}
Для этого конкретного примера я хотел бы знать, какие классы использует класс Dog
.Поэтому я хотел бы программно получить доступ к объекту, который имеет эти зависимости.В этой ситуации этот объект будет содержать классы / интерфейсы IBark
, Animal
и Cat
и, возможно, соответствующие им пути к файлам.
Возможно ли это в C #?Я попытался заглянуть в Roslyn API и, хотя я могу проанализировать документ и обойти его, чтобы найти узлы, я не нашел способа получить метаданные, связанные с этими узлами, которые могли бы дать мне то, что я ищу (например, пути к файлам),Это заставило меня задуматься, нет ли лучшего подхода к этой проблеме.