Создайте приложение, например Visual Studio Object Browser

Я хочу разработать приложение, подобное 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 ответ

Решение

'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");
Другие вопросы по тегам