Создание и использование компонентов в Visual Basic
Компонент представляет собой класс, реализующий интерфейс System.ComponentModel.IComponent, или производный прямо или косвенно от класса, реализующего интерфейс IComponent. Компонент .NET Framework — это многократно используемый объект, который может взаимодействовать с другими объектами и обеспечивает управление внешними ресурсами и поддержку режима проектирования.
Важной особенностью компонентов является то, что они поддерживают проектирование, что означает, что класс-компонент может быть использован в интегрированной среде разработки Visual Studio. Компонент можно добавить в "Панель элементов", перетащить на форму и манипулировать им на поверхности проектирования. Отметим, что базовая поддержка режима проектирования для компонентов встроена в .NET Framework; разработчику компонентов не нужно прикладывать дополнительные усилия, чтобы воспользоваться ее преимуществами при проектировании.
Элемент управления похож на компонент, так как он тоже поддерживает проектирование. Но в отличие от компонента, элемент управления предоставляет пользовательский интерфейс. Элемент управления должен быть производным от одного из базовых классов элементов управления: Control или Control.
Когда следует создавать компонент
Если класс будет использоваться на поверхности проектирования (например Windows Forms или конструктора Web Forms), но у него нет пользовательского интерфейса, он должен быть компонентом и реализовывать IComponent либо быть производным от класса, который прямо или косвенно реализующего интерфейс IComponent.
Классы Component и MarshalByValueComponent являются базовой реализацией интерфейса IComponent. Главное различие между этими классами состоит в том, что маршалинг класса Component производится по ссылке, а класса IComponent — по значению. Следующий список содержит общие принципы реализации.
Если компонент нужно будет маршалировать по ссылке, он должен быть производным от класса Component.
Если компонент нужно будет маршалировать по значению, он должен быть производным от класса MarshalByValueComponent.
Если компонент не может быть производным от одной из базовых реализации из-за единичного наследования, реализуйте интерфейс IComponent.
Дополнительные сведения о поддержке режима проектирования см. в разделах Атрибуты времени разработки для компонентов и Расширение поддержки времени разработки.
Классы компонентов
Пространство имен System.ComponentModel содержит классы, реализующие поведение компонентов и элементов управления во время проектирования и выполнения. Данное пространство имен включает базовые классы и интерфейсы, предназначенные для реализации преобразователей атрибутов и типов, для привязки к источникам данных и для лицензирования компонентов.
Основные классы компонентов:
Component. Базовая реализация интерфейса IComponent. Этот класс обеспечивает совместное использование объектов приложениями.
MarshalByValueComponent. Базовая реализация интерфейса IComponent.
Container. Базовая реализация интерфейса IContainer. Этот класс инкапсулирует ноль или более компонентов.
Некоторые классы, используемые для лицензирования компонентов:
License. Абстрактный базовый класс для всех лицензий. Лицензия предоставляется на конкретный экземпляр компонента.
LicenseManager. Предоставляет свойства и методы, необходимые для добавления лицензии на компонент и для управления объектом LicenseProvider.
LicenseProvider. Абстрактный базовый класс для реализации поставщика лицензий.
LicenseProviderAttribute. Задает класс LicenseProvider, используемый с тем или иным классом.
Классы, обычно используемые для описания и постоянного хранения компонентов.
TypeDescriptor. Содержит сведения о характеристиках компонента, например его атрибутах, свойствах и событиях.
EventDescriptor. Предоставляет сведения о событии.
PropertyDescriptor. Предоставляет сведения о свойстве.
Связанные разделы
Выбор между классом, компонентом и элементом управления
В этом разделе определяются термины компонент и элемент управления и рассматриваются различия между ними и классами.Создание компонентов
Путеводитель для начала работы с компонентами.Примеры создания компонентов
Ссылки на разделы, содержащие пошаговые инструкции по программированию компонентов.Классы компонентов
Описание того, что делает класс компонентом, способов предоставления функциональных возможностей компонента другим приложениям, управления доступом к компонентам и созданием их экземпляров.Разрешение вопросов, связанных с созданием элементов управления и компонентов
Способы решения распространенных проблем.
См. также
Задачи
Практическое руководство. Доступ к поддержке во время разработки в Windows Forms