Создайте приложение, например 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");