Auf Englisch lesen

Freigeben über


ISite Schnittstelle

Definition

Stellt die für Websites erforderliche Funktionalität bereit.

C#
public interface ISite : IServiceProvider
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface ISite : IServiceProvider
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die Implementierung von ISite, IComponentund IContainer für die Verwendung in einem Bibliothekscontainer veranschaulicht.

C#
/// <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();
    }
}

Hinweise

Websites binden ein Component an ein Container und ermöglichen die Kommunikation zwischen ihnen sowie eine Möglichkeit für den Container, seine Komponenten zu verwalten.

Websites können auch als Repository für containerspezifische Komponenteninformationen dienen, z. B. den Komponentennamen.

Hinweise für Ausführende

Um ein Standort zu sein, muss eine -Klasse die ISite -Schnittstelle implementieren.

Eigenschaften

Component

Ruft bei der Implementierung durch eine Klasse die der ISite zugeordnete Komponente ab.

Container

Ruft bei der Implementierung durch eine Klasse den der IContainer zugeordneten ISite ab.

DesignMode

Bestimmt, ob sich die Komponente beim Implementieren durch eine Klasse im Entwurfsmodus befindet.

Name

Ruft bei der Implementierung durch eine Klasse den Namen der Komponente ab, die ISite zugeordnet ist, oder legt diesen fest.

Methoden

GetService(Type)

Ruft das Dienstobjekt des angegebenen Typs ab.

(Geerbt von IServiceProvider)

Erweiterungsmethoden

GetKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Ruft eine Enumeration von Diensten vom Typ serviceType aus ab IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Ruft eine Enumeration von Diensten vom Typ T aus ab IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Ruft einen Dienst vom Typ serviceType aus ab IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

CreateAsyncScope(IServiceProvider)

Erstellt eine neue AsyncServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

CreateScope(IServiceProvider)

Erstellt eine neue IServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

GetRequiredService(IServiceProvider, Type)

Ruft einen Dienst vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetRequiredService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetServices(IServiceProvider, Type)

Ruft eine Enumeration von Diensten vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetServices<T>(IServiceProvider)

Ruft eine Enumeration von Diensten vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetFakeLogCollector(IServiceProvider)

Ruft das -Objekt ab, das An die gefälschte Protokollierung gesendete Protokolldatensätze sammelt.

GetFakeRedactionCollector(IServiceProvider)

Ruft den gefälschten Redactorsammler instance aus dem Abhängigkeitsinjektionscontainer ab.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Weitere Informationen