Component is the default implementation of IComponent and serves as the base class for all components in the common language runtime.
You can contain components in a container. In this context, containment refers to logical containment, not visual containment. You can use components and containers in a variety of scenarios, both visual and non visual.
A component interacts with its container primarily through a container-provided ISite, which is a repository of container-specific per-component information.
Notes to Implementers:
To be a component, a class must implement the IComponent interface and provide a basic constructor that requires no parameters or a single parameter of type IContainer. For more information about implementing IComponent, see Programming with Components.