Export (0) Print
Expand All

ISite Interface

Provides functionality required by sites.

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)

[ComVisibleAttribute(true)]
public interface class ISite : IServiceProvider

The ISite type exposes the following members.

  NameDescription
Public propertySupported by the XNA FrameworkComponentGets the component associated with the ISite when implemented by a class.
Public propertySupported by the XNA FrameworkContainerGets the IContainer associated with the ISite when implemented by a class.
Public propertySupported by the XNA FrameworkDesignModeDetermines whether the component is in design mode when implemented by a class.
Public propertySupported by the XNA FrameworkNameGets or sets the name of the component associated with the ISite when implemented by a class.
Top

  NameDescription
Public methodSupported by the XNA FrameworkGetServiceGets the service object of the specified type. (Inherited from IServiceProvider.)
Top

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 
   ref class ISBNSite: public ISite
   {
   private:
      IComponent^ m_curComponent;
      IContainer^ m_curContainer;
      bool m_bDesignMode;
      String^ m_ISBNCmpName;

   public:
      ISBNSite( IContainer^ actvCntr, IComponent^ prntCmpnt )
      {
         m_curComponent = prntCmpnt;
         m_curContainer = actvCntr;
         m_bDesignMode = false;
         m_ISBNCmpName = nullptr;
      }


      property IComponent^ Component 
      {

         //Support the ISite interface. 
         virtual IComponent^ get()
         {
            return m_curComponent;
         }

      }

      property IContainer^ Container 
      {
         virtual IContainer^ get()
         {
            return m_curContainer;
         }

      }

      property bool DesignMode 
      {
         virtual bool get()
         {
            return m_bDesignMode;
         }

      }

      property String^ Name 
      {
         virtual String^ get()
         {
            return m_ISBNCmpName;
         }

         virtual void set( String^ value )
         {
            m_ISBNCmpName = value;
         }

      }

      //Support the IServiceProvider interface. 
      virtual Object^ GetService( Type^ serviceType )
      {

         //This example does not use any service object. 
         return nullptr;
      }

   };


   // The BookComponent class represents the book component of the library container. 
   // This class implements the IComponent interface. 
   ref class BookComponent: public IComponent
   {
   private:
      ISite^ m_curISBNSite;
      String^ m_bookTitle;
      String^ m_bookAuthor;

   public:
      event virtual EventHandler^ Disposed;

	  BookComponent( String^ Title, String^ Author )
      {
         m_curISBNSite = nullptr;
         //Disp = false;
         m_bookTitle = Title;
         m_bookAuthor = Author;
      }


      property String^ Title 
      {
         String^ get()
         {
            return m_bookTitle;
         }

      }

      property String^ Author 
      {
         String^ get()
         {
            return m_bookAuthor;
         }

      }

      ~BookComponent()
      {

      }

      property ISite^ Site 
      {
         virtual ISite^ get()
         {
            return m_curISBNSite;
         }

         virtual void set( ISite^ value )
         {
            m_curISBNSite = value;
         }

      }
      virtual bool Equals( Object^ cmp ) override
      {
         BookComponent^ cmpObj = safe_cast<BookComponent^>(cmp);
         return (this->Title->Equals( cmpObj->Title ) && this->Author->Equals( cmpObj->Author ));
      }

      virtual int GetHashCode() override
      {
         return IComponent::GetHashCode();
      }

   };

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft