Читаем C# 4.0: полное руководство полностью

Этот метод возвращает массив типов, содержащихся в сборке.

Для того чтобы продемонстрировать порядок обнаружения типов в сборке, потребуются два исходных файла. Первый файл будет содержать ряд классов, обнаруживаемых в коде из второго файла. Создадим сначала файл MyClasses.cs, содержащий следующий код.

// Файл, содержащий три класса и носящий имя MyClasses.cs.

using System;

class MyClass {

  int x;

  int y;

  public MyClass(int i) {

    Console.WriteLine("Конструирование класса MyClass(int). ");

    x = y = i;

    Show();

  }

  public MyClass(int i, int j) {

    Console.WriteLine("Конструирование класса MyClass(int, int). ");

    x = i;

    y = j;

    Show();

  }

  public int Sum() {

    return x + y;

  }

  public bool IsBetween(int i) {

    if ((x < i) && (i < y)) return true;

    else return false;

  }

  public void Set(int a, int b) {

    Console.Write("В методе Set(int, int). ");

    x = a;

    y = b;

    Show();

  }

  // Перегрузить.метод Set.

  public void Set(double a, double b) {

    Console.Write("В методе Set(double, double). ");

    x = (int)a;

    y = (int)b;

    Show();

  }

  public void Show() {

    Console.WriteLine("Значение x: {0}, значение у: {1}", x, y);

  }

}

class AnotherClass {

  string msg;

  public AnotherClass(string str) {

    msg = str;

  }

  public void Show() {

    Console.WriteLine(msg);

  }

}

class Demo {

  static void Main() {

    Console.WriteLine("Это заполнитель.");

  }

}

Этот файл содержит класс MyClass, неоднократно использовавшийся в предыдущих примерах. Кроме того, в файл добавлены второй класс AnotherClass и третий класс Demo. Следовательно, сборка, полученная из исходного кода, находящегося в этом исходном файле, будет содержать три класса. Затем этот файл компилируется, и из него формируется исполняемый файл MyClasses.ехе. Именно эта сборка и будет опрашиваться программно.

Ниже приведена программа, в которой будут извлекаться сведения о файле сборки MyClasses.ехе. Ее исходный текст составляет содержимое второго файла.

/* Обнаружить сборку, определить типы и создать объект с помощью рефлексии. */

using System;

using System.Reflection;

class ReflectAssemblyDemo {

  static void Main() {

    int val;

    // Загрузить сборку MyClasses.exe.

    Assembly asm = Assembly.LoadFrom("MyClasses.exe");

    // Обнаружить типы, содержащиеся в сборке MyClasses.exe.

    Type[] alltypes = asm.GetTypes();

    foreach (Type temp in alltypes)

      Console.WriteLine("Найдено: " + temp.Name);

    Console.WriteLine();

    // Использовать первый тип, в данном случае — класс MyClass.

    Type t = alltypes[0]; // использовать первый найденный класс

    Console.WriteLine("Использовано: " + t.Name);

    // Получить сведения о конструкторе.

    ConstructorInfo[] ci = t.GetConstructors();

    Console.WriteLine("Доступные конструкторы: ");

    foreach (ConstructorInfo с in ci) {

      // Вывести возвращаемый тип и имя.

      Console.Write(" " + t.Name + "(");

      // Вывести параметры.

      ParameterInfo[] pi = с.GetParameters();

      for (int i = 0; i < pi.Length; i++) {

        Console.Write(pi[i].ParameterType.Name + " " + pi[i].Name);

        if (i + 1 < pi.Length) Console.Write(", ");

      }

      Console.WriteLine(")");

    }

    Console.WriteLine();

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных