Ler em inglês

Partilhar via


ISite Interface

Definição

Fornece a funcionalidade requerida por sites.

C#
public interface ISite : IServiceProvider
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface ISite : IServiceProvider
Derivado
Atributos
Implementações

Exemplos

O exemplo a seguir demonstra a implementação de ISite, IComponente IContainer para uso em um contêiner de biblioteca.

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

Comentários

Os sites associam um Component a um Container e permitem a comunicação entre eles, bem como fornecem uma maneira de o contêiner gerenciar seus componentes.

Os sites também podem servir como um repositório para informações específicas do contêiner, por componente, como o nome do componente.

Notas aos Implementadores

Para ser um site, uma classe deve implementar a ISite interface .

Propriedades

Component

Obtém o componente associado a ISite quando implementado por uma classe.

Container

Obtém o IContainer associado a ISite quando implementado por uma classe.

DesignMode

Determina se o componente está no modo de design quando é implementado por uma classe.

Name

Obtém ou define o nome do componente associado a ISite quando implementado por uma classe.

Métodos

GetService(Type)

Obtém o objeto de serviço do tipo especificado.

(Herdado de IServiceProvider)

Métodos de Extensão

GetKeyedService<T>(IServiceProvider, Object)

Obtém um serviço do tipo T do IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Obtém uma enumeração de serviços do tipo serviceType do IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Obtém uma enumeração de serviços do tipo T do IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Obtém um serviço do tipo serviceType do IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Obtém um serviço do tipo T do IServiceProvider.

CreateAsyncScope(IServiceProvider)

Cria um novo AsyncServiceScope que pode ser usado para resolver serviços com escopo.

CreateScope(IServiceProvider)

Cria um novo IServiceScope que pode ser usado para resolver serviços com escopo.

GetRequiredService(IServiceProvider, Type)

Obter serviço do tipo serviceType do IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Obter serviço do tipo T do IServiceProvider.

GetService<T>(IServiceProvider)

Obter serviço do tipo T do IServiceProvider.

GetServices(IServiceProvider, Type)

Obtém uma enumeração de serviços do tipo serviceType do IServiceProvider.

GetServices<T>(IServiceProvider)

Obtém uma enumeração de serviços do tipo T do IServiceProvider.

GetFakeLogCollector(IServiceProvider)

Obtém o objeto que coleta registros de log enviados ao agente falso.

GetFakeRedactionCollector(IServiceProvider)

Obtém a instância falsa do coletor de refatoração do contêiner de injeção de dependência.

Aplica-se a

Produto Versões
.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

Confira também