Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рантайм классы? / 10 сообщений из 10, страница 1 из 1
09.01.2003, 15:51
    #32088305
smeh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Как на с# загрузить и пользовать DLL,
не имея от нее заголовков и незная чего в ней.
...
Рейтинг: 0 / 0
09.01.2003, 16:17
    #32088341
Маveric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Чего за Dll, .Net-овская?
...
Рейтинг: 0 / 0
09.01.2003, 16:18
    #32088346
smeh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
в моем случае нетовская
...
Рейтинг: 0 / 0
09.01.2003, 16:30
    #32088360
Маveric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Я ещё сам не делал, только читал )
Вроде все делается через сборки ( класс System.Reflection.Assembly) и отражение. Знаю точно, что можно получить список всех классов, методов и свойств, а также их атрибуты. ну и конечно воспользоватся всем етим.
Примерчик могу завтра скинуть (к книге на компакте прилагается) .
...
Рейтинг: 0 / 0
09.01.2003, 16:39
    #32088367
smeh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Буду очень признателен за примерчик.
...
Рейтинг: 0 / 0
09.01.2003, 17:12
    #32088399
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
http://www.microsoft.com/rus/msdn/magazine/archive/08_2002/cpp.asp

там в архиве примеры - см.файл Win32API.cs
...
Рейтинг: 0 / 0
09.01.2003, 17:16
    #32088403
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
а нет, сорри, там уже ЗНАЯ, что хочешь получить
ну, может пригодится...
...
Рейтинг: 0 / 0
10.01.2003, 10:57
    #32088657
Маveric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Отправил!
Я его несколько переделал и добавил коментарии, так что смотри.
P.S. при попытке открыть файл не нетовский в коде
Assembly a=Assembly.LoadFrom(Имя файла); возникнет исключение т.к. нет манифеста сборки. Так что пример только для файлов Net.
...
Рейтинг: 0 / 0
10.01.2003, 11:13
    #32088673
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
может кинешь код прямо в форум, для общего развития так сказать
...
Рейтинг: 0 / 0
10.01.2003, 11:47
    #32088697
Маveric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рантайм классы?
Прога выводит названия всех методов из Dll наход. в текущей директории
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
using System;
using System.Reflection;
using System.IO;

class LateBindingApp
{
  public static void Main()
  {
   // загружаем в массив все имена файлов с маской *.dll
   // из текущей директории
   string[] fileNames = Directory.GetFiles (Environment.CurrentDirectory,  "*.dll" );

	 foreach(string fileName in fileNames)

	{
			Console.WriteLine( "Загружается DLL '{0}'" , fileName);
			// пытаемся загрузить сборку из файла
			Assembly a = Assembly.LoadFrom(fileName);
			// загружаем в массив все типы сборки
			Type[] types = a.GetTypes();
			// в цикле перебираем все типы сборки
			foreach(Type t in types)
			{
				// в этом месте можно получить всю информацию о типе 
				// например, загрузить все его методы в массив
				MethodInfo[] allMeth = t.GetMethods(); 
				// 
				// или получить имя класса: string ClassName = t.Name;
				foreach (MethodInfo mi in allMeth )
				{
					Console.WriteLine ( "Метод - " + mi.Name);
					// Для вызова метода использутся класс Activator
				}
						
			}
	}
	Console.ReadLine();
	}
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рантайм классы? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]