2011-12-30 1 views
5

Я пытаюсь выяснить все классы и сборки, которые используют/ссылаются на определенный класс. Есть ли способ узнать через программирование на C#?Поиск ссылки на класс и методы

Например, если Class1 называется/ссылается Class2 в Assembly1, Class3 в Assembly2, я хочу найти Class2 & Class3 с помощью C# программирование.

Есть ли кто-нибудь, кто мог бы мне помочь? Есть ли какой-нибудь инструмент, который мог бы помочь в этом? Я хочу написать небольшую программу для чтения класса из одной сборки и найти классы, на которые ссылается/используется этот конкретный класс.

Мой вопрос вкратце: Как найти неиспользованный класс или метод в моей кодовой базе, написав программу C# в качестве части операции очистки кода?

+3

он в время компиляции или время выполнения? – oleksii

+0

«Этот тег предназначен для вопросов программирования на языке ассемблера, не относящихся ни к одному процессору». - используйте вместо этого тег [.net-assembly] –

+0

Если время выполнения, это возможно через отражение, но вам придется перечислить все сборки, все их классы, все методы, свойства и конструкторы, их параметры и т. д. классы, а затем вы все равно не поймаете ссылки, используемые только в теле кода методов и т. д. – Casperah

ответ

1

Если вы ищете инструмент для этого, вы можете использовать NDepend, который может делать то, что вы описываете, а также многое другое.

Или, если вы используете ReSharper: Щелкните правую кнопку мыши, «найти использования» ... (не полезно для нахождения неиспользуемого кода в самом деле)

+0

Говорите о том, сколько времени нужно делать для каждого класса/метода, так как он хочет найти неиспользуемые классы/методы для кода чистым вверх. – jgauffin

+1

Затем используйте NDepend. Это идеальный инструмент для этого. «Найти мертвый код» - главная особенность. –

+0

Спасибо, что вам нужна помощь. – nRk