Получение квалифицированного имени сборки класса в Visual Studio - PullRequest
5 голосов
/ 10 апреля 2010

Я пишу настраиваемую отражающую библиотеку для некоторой специализированной пользовательской логики домена, и эта библиотека будет использовать файлы конфигурации XML, которые будут динамически разрешать объекты System.Type во время выполнения. Тем не менее, при написании файлов конфигурации XML довольно сложно писать типы, потому что они должны быть полностью квалифицированными именами сборок для Type.GetType () для их разрешения. Есть ли способ узнать AssemblyQualifiedName объекта в Visual Studio, не прибегая к написанию программы, которая выводит их в файл или стандартный файл или что-то в этом роде?

Ответы [ 3 ]

5 голосов
/ 10 апреля 2010

Если бы я был в вашей ситуации, я бы просто открыл окно Immediate (Debug-> Windows-> Immediate) и использовал typeof(TypeFullName).AssemblyQualifiedName.

Для этого необходимо указать тип с полным пространством имен, что также имеет побочный эффект автоматического запуска проекта запуска решения. Этот побочный эффект можно смягчить, временно установив библиотеку классов в качестве проекта запуска решения.

Пример:

typeof(System.Windows.Forms.Button).AssemblyQualifiedName
3 голосов
/ 10 апреля 2010

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

Загрузите бесплатную версию Reflector отсюда , распакуйте ее и запустите. Перетащите на него скомпилированную версию вашей сборки, и рядом с тегом Name в разделе информации в нижней части диалогового окна будет указано его полное имя, и вы сможете просто скопировать и вставить его. оттуда.

Обратите внимание, что вся необходимая информация также доступна, если щелкнуть правой кнопкой мыши на скомпилированном файле, выбрать Свойства , а затем перейти на вкладку Подробно , хотя вы не можете просто скопировать / вставить оттуда.

0 голосов
/ 10 апреля 2010

Я не уверен, что понял проблему. Вы хотите получить полные имена ваших типов программно? Если это так, вы всегда можете использовать typeof(YourType).FullName или typeof(YourType).AssemblyQualifiedName.

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

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