Создайте приложение, например Visual Studio Object Browser - PullRequest
0 голосов
/ 04 августа 2011

Я хочу разработать приложение, например Visual Studio Object Browser, т.е. пользователь введет что-то вроде System.Text пространства имен или системных классов.После нажатия кнопки мы должны выяснить все классы, функции, свойства и т. Д. Внутри «System.Text».

Я попробовал следующее, но это не удалось.

        Assembly SampleAssembly;
        SampleAssembly = Assembly.Load("System.Text");

        Type[] Types = SampleAssembly.GetTypes();
        // Display all the types contained in the specified assembly.
        StringBuilder str = new StringBuilder();

        foreach (Type oType in Types)
        {
            str.Append(oType.Name.ToString() + "</br>");
        }
        divAsseblyData.InnerHtml = str.ToString();

1 Ответ

2 голосов
/ 04 августа 2011

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

Чтобы использовать Assembly.Load () со строковым параметром, вам необходимо передать полностьюквалифицированное имя сборки.

Чтобы получить полностью квалифицированное имя, вы можете сделать что-то вроде этого:

Assembly SampleAssembly;
SampleAssembly = Assembly.Load(typeof(System.Activator).Assembly.FullName);
// get the type of some random object in the assembly (Activator) and then
// call .Assembly.FullName which returns the fully qualified name of the assembly

Или вы можете нажать Win + R, введите «Сборка» и введите, затем щелкните правой кнопкой мыши -> свойства на нужной сборке и установите вручную свойства в коде в формате:

»mscorlib, Версия = 2.0.0.0, Культура= нейтральный, PublicKeyToken = b77a5c561934e089 "

SampleAssembly = Assembly.Load("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...