//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.ComponentModel { using System; /* * Containers use sites to manage and communicate their child components. * * A site is a convenient place for a container to store container-specific * per-component information. The canonical example of such a piece of * information is the name of the component. * * To be a site, a class implements the ISite interface. */ // Interfaces don't need to be serializable /// /// Provides functionality required by sites. Sites bind /// a to a /// and enable communication between them, as well as provide a way /// for the container to manage its components. /// [System.Runtime.InteropServices.ComVisible(true)] public interface ISite : IServiceProvider { // The component sited by this component site. /// /// When implemented by a class, gets the component associated with the . /// IComponent Component {get;} // The container in which the component is sited. /// /// When implemented by a class, gets the container associated with the . /// IContainer Container {get;} // Indicates whether the component is in design mode. /// /// When implemented by a class, determines whether the component is in design mode. /// bool DesignMode {get;} // The name of the component. // /// /// When implemented by a class, gets or sets the name of /// the component associated with the . /// String Name { get; set; } } }