В методе Set (int, int) . Значение х: 9, значение у: 18 В методе Set(double, double). Значение х: 1, значение у: 23 Значение х: 1, значение у: 2 3
Как следует из результата выполнения приведенной выше программы, обнаружены все три класса, содержащиеся в файле сборкиМу С lasses . ехе.Первым среди них обнаружен классMyClass,который затем был использован для получения экземпляра объекта и вызова соответствующих методов.
Отдельные типы обнаруживаются в сборкеMyClasses . ехес помощью приведенной ниже последовательности кода, находящегося в самом начале методачМал.п .
// Загрузить сборку MyClasses.exe.
Assembly asm = Assembly.LoadFrom("MyClasses.ехе") ;
// Обнаружить типы, содержащиеся в сборке MyClasses.exe.
Туре[] alltypes = asm.GetTypes; foreach(Type temp in alltypes)
Console.WriteLine("Найдено: " + temp.Name);
Этой последовательностью кода можно пользоваться всякий раз, когда требуется динамически загружать й опрашивать сборку.
Но сборка совсем не обязательно должна быть исполняемым файлом с расширением .ехе.Сборки могут быть также в файлах динамически компонуемых библиотек (DLL) с расширением .dll. Так, если скомпилировать исходный файл MyClasses . cs в следующей командной строке:
csc /t:library MyClasses.es
то в итоге получится файл MyClasses .dll. Преимущество размещения кода в библиотеке DLL заключается, в частности, в том, что в этом случае метод Main в исходном коде не нужен, тогда как всем исполняемым файлам требуется определенная точка входа, с которой должно начинаться выполнение программы. Именно поэтому класс Demo содержит метод Main в качестве такой точки входа. А для библиотеки DLL метод Main не требуется. Если же класс MyClass нужно превратить в библиотеку DLL, то в вызов метода LoadFrom придется внести следующее изменение.
Assembly asm = Assembly.LoadFrom("MyClasses.dll");
Полностью автоматизированное обнаружение типов