ISite Interface
Provides functionality required by sites.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | Component | Gets the component associated with the ISite when implemented by a class. |
![]() | Container | Gets the IContainer associated with the ISite when implemented by a class. |
![]() | DesignMode | Determines whether the component is in design mode when implemented by a class. |
![]() | Name | Gets or sets the name of the component associated with the ISite when implemented by a class. |
| Name | Description | |
|---|---|---|
![]() | GetService(Type) | Gets the service object of the specified type.(Inherited from IServiceProvider.) |
Sites bind a Component to a Container and enable communication between them, as well as provide a way for the container to manage its components.
Sites can also serve as a repository for container-specific, per-component information, such as the component name. For more information about components, see Programming with Components.
Notes to Implementers:
To be a site, a class must implement the ISite interface.
The following example demonstrates the implementation of ISite, IComponent, and IContainer for use in a library container.
/// <summary> /// The following example demonstrates the implementation of /// ISite, IComponent, and IContainer for use in a simple library container. /// /// This example uses the System, System.ComponentModel, and System.Collections /// namespaces. /// </summary> //This code segment implements the ISite and IComponent interfaces. //The implementation of the IContainer interface can be seen in the documentation //of IContainer. //Implement the ISite interface. // The ISBNSite class represents the ISBN name of the book component class ISBNSite : ISite { private IComponent m_curComponent; private IContainer m_curContainer; private bool m_bDesignMode; private string m_ISBNCmpName; public ISBNSite(IContainer actvCntr, IComponent prntCmpnt) { m_curComponent = prntCmpnt; m_curContainer = actvCntr; m_bDesignMode = false; m_ISBNCmpName = null; } //Support the ISite interface. public virtual IComponent Component { get { return m_curComponent; } } public virtual IContainer Container { get { return m_curContainer; } } public virtual bool DesignMode { get { return m_bDesignMode; } } public virtual string Name { get { return m_ISBNCmpName; } set { m_ISBNCmpName = value; } } //Support the IServiceProvider interface. public virtual object GetService(Type serviceType) { //This example does not use any service object. return null; } } // The BookComponent class represents the book component of the library container. // This class implements the IComponent interface. class BookComponent : IComponent { public event EventHandler Disposed; private ISite m_curISBNSite; private string m_bookTitle; private string m_bookAuthor; public BookComponent(string Title, string Author) { m_curISBNSite = null; Disposed = null; m_bookTitle = Title; m_bookAuthor = Author; } public string Title { get { return m_bookTitle; } } public string Author { get { return m_bookAuthor; } } public virtual void Dispose() { //There is nothing to clean. if(Disposed != null) Disposed(this,EventArgs.Empty); } public virtual ISite Site { get { return m_curISBNSite; } set { m_curISBNSite = value; } } public override bool Equals(object cmp) { BookComponent cmpObj = (BookComponent)cmp; if(this.Title.Equals(cmpObj.Title) && this.Author.Equals(cmpObj.Author)) return true; return false; } public override int GetHashCode() { return base.GetHashCode(); } }
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0

