В Visual Studio 2008 есть простой способ определить, в какой DLL определен класс? - PullRequest
4 голосов
/ 30 января 2010

Достаточно легко определить пространство имен для класса, нажав «Перейти к определению» (или при наведении курсора), но мне часто нужно знать, в чем определена dll, чтобы я мог добавить соответствующую ссылку на другой проект, который нужно то же самое).

Например, в Silverlight есть много классов в пространстве имен System.Windows.Controls, и они распределены по крайней мере на 5 различных библиотек.

Я в конечном итоге выясняю это методом проб и ошибок, но должен быть более простой способ.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 30 января 2010

Если DLL-библиотека класса является проектом в вашем решении, вы можете включить опцию Track Active Item in Solution Explorer (она находится в разделе Инструменты> Параметры> Проекты и решения), поэтому при переходе к определению класса выбор в обозревателе решений автоматически перейдет к своему файлу, а затем вы увидите, в каком проекте он находится.

0 голосов
/ 30 января 2010

К сожалению, я думаю, что нет простого способа сделать это. Я чувствую твою боль, потому что у меня были те же самые проблемы в прошлом.

Мой обычный подход к решению этой проблемы - рефлектор. Для каждого решения, которое у меня есть, у меня обычно есть конфигурация отражателя, которая содержит все библиотеки DLL, на которые ссылается это решение. Когда мне нужно выяснить, кто владеет DLL, я открываю рефлектор, делаю быстрый поиск по имени и обнаруживаю DLL.

Это не идеальное решение, но оно работает и относительно быстро.

0 голосов
/ 30 января 2010

Если ваши пространства имен имеют правильные имена (так что они относятся к имени DLL), то у вас не должно быть проблем. Может быть, стоит подумать о нескольких минутах рефакторинга вашего пространства имен?

Если вы переходите к определению, вы можете использовать команду save-as, чтобы легко увидеть, где она сохранена в проекте (и затем отменить сохранение). (Это, конечно, зависит от структуры вашей папки, связанной с вашим пространством имен и именами сборок, но обычно для получения проекта, которому принадлежит что-то, достаточно получить имя файла)

edit: (конечно, это работает только для классов, для которых у вас есть исходный код)

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