Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Компонент — это класс, реализующий System.ComponentModel.IComponent интерфейс или производный напрямую или косвенно от класса, реализующегоIComponent. Компонент .NET — это объект, который можно повторно использовать, может взаимодействовать с другими объектами и управлять внешними ресурсами и поддержкой времени разработки.
Важной особенностью компонентов является то, что они доступны для проектирования, что означает, что класс, являющийся компонентом, можно использовать в интегрированной среде разработки Visual Studio. Компонент можно добавить на панель элементов, перетащить и поместить на форму и управлять им на поверхности конструктора. Базовая поддержка времени разработки компонентов встроена в .NET. Разработчику компонентов не нужно выполнять дополнительную работу, чтобы использовать базовую функциональность в режиме разработки.
Элемент управления аналогичен компоненту, так как оба являются проектируемыми. Однако элемент управления предоставляет пользовательский интерфейс, а компонент нет. Элемент управления должен быть производным от одного из базовых классов элементов управления: Control или Control.
Когда нужно создать компонент
Если ваш класс будет использоваться в дизайнере (например, Windows Forms или Web Forms Designer), но не имеет пользовательского интерфейса, он должен быть компонентом, который реализует 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. Предоставляет сведения о свойстве.
Связанные разделы
Устранение неполадок и создание управления и компонентов
Объясняет, как устранить распространенные проблемы.