2010-02-05 3 views
4

Есть ли способ получить имя сборки из строки пространства имен? Например, получите «mscorlib» из «Системы».Имя сборки из строки пространства имен

Причина в моем вопросе заключается в том, что я создаю скрипты Boo методом-by-method, и мне требуется добавлять пространства имен программно. Результирующая строка в Boo будет гласить:

import System from mscorlib 

Я мог бы, очевидно, передать в коллекции импорта строк, но если я могу просто передать список ссылок, которые были бы гораздо более масштабируемым!

Большое спасибо

ответ

5

имена Сборочные и названия пространства имен полностью ортогональные понятия. Между ними нет реальных отношений. Если вы не изучите набор известных сборок, чтобы увидеть, какие пространства имен они содержат, нет никакого реального способа получить имя сборки из имени пространства имен. Например, что бы вы сделали, если две сборки (оба mscorlib и System.Core) объявили тип в пространстве имен System?

+0

Это очень хороший момент! Я об этом не думал, спасибо Мехридаду! –

0

Вы можете получить его от типа:

Console.WriteLine(typeof(System.Object).Module.Name); 

О пространстве имен, помните, что более чем один узел может определить то же пространство имен.

+0

Да, я дал это, хотя использование объекта в пространстве имен немного взломано: P Спасибо вам большое за ваши ответы! –

Смежные вопросы