C # - Получить список типов, которые файл исходного кода использует или ссылается на - PullRequest
0 голосов
/ 07 сентября 2018

У меня длинный файл .cs (много таких файлов), и для ускорения аудита безопасности я хотел бы увидеть список классов, к которым относится этот файл.

Например:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using OrganizationName;

namespace OurCodebase
{
    public class NeedsAudit
    {
        public void DoSomething()
        {
            System.IO.File.ReadAllText( "" );
            WebRequest wr = WebRequest.Create( "" );
            OurFramework.Clients.Search( "*jason*" );
        }
    }
}

Это должно привести к списку:

System.IO.File
System.Net.WebRequest
OrganizationName.OurFramework.Clients

Есть ли способ сделать это в Visual Studio или, возможно, в программе, которая будет анализировать код и извлекать этот список?

Ответы [ 2 ]

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

Помимо CodeMap и NDepend, вы можете попробовать мой инструмент Designite , особенно если вы хотите увидеть зависимости в матричном формате. DSM (Матрица структуры зависимостей), предоставляемая Designite, позволяет в интерактивном режиме видеть зависимости с различной степенью детализации (типы, пространства имен и проекты).

DSM by Designite

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

У вас есть много вариантов, я использовал NDepend в нескольких проектах. NDepend предлагает гораздо больше, чем вы просили, но создает визуальный график зависимостей (подробнее здесь )

NDepend - это инструмент статического анализа для управляемого кода .NET. Инструмент поддерживает большое количество метрик кода, позволяя визуализировать зависимости с помощью ориентированных графов и матрицы зависимостей. Инструмент также выполняет сравнение снимков кода и проверку архитектурных правил и правил качества.

CodeMap для visual studio 2017 также доступен для задач визуализации зависимостей.

Страница CodeMap на MSDN :

Вы можете визуализировать зависимости по всему коду, создав карту кода. Карты кода помогают увидеть, как код совмещается, не читая файлы и строки кода.

Map dependencies with code maps

...