Это позволяет вам предоставить Время разработки возможность использования, например, в. Visual Studio.
"Пространства имен System.ComponentModel
содержат типы, которые реализуют поведение компонентов и элементов управления во время выполнения и во время разработки."
Предоставляемая вами функциональность может быть любой (BackgroundWorker
делает что-то очень отличное от ComboBox
, но оба они Component
).
Что предоставляет ComponentModel
, так это метаданные, и выгода в том, что вы можете создавать компоненты, которые можно использовать в визуальном конструкторе. Следовательно:
public interface IDesigner : IDisposable {
IComponent Component {get;}
DesignerVerbCollection Verbs {get;}
void DoDefaultAction();
void Initialize(IComponent component);
}
Пространство имен также предоставляет материал TypeDescriptor / Convertor, который снова используется для доступа к свойствам во время разработки.
(Было высказано предположение, что вы можете использовать System.ComponentModel в качестве своего рода IoC-контейнера. Я никогда не видел, чтобы кто-нибудь делал это; как вы говорите, он не предлагает ничего, кроме хорошего дизайна).
Итак: рассмотрите возможность использования System.ComponentModel.Component, когда вы также хотите предоставить IDesigner
с вашим компонентом.