영어로 읽기

다음을 통해 공유


ISite 인터페이스

정의

사이트에 필요한 기능을 제공합니다.

public interface ISite : IServiceProvider
[System.Runtime.InteropServices.ComVisible(true)]
public interface ISite : IServiceProvider
파생
특성
구현

예제

다음 예제에서는 라이브러리 컨테이너에서 사용할 , IComponentIContainerISite구현을 보여 줍니다.

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

설명

사이트는 에 Container 바인딩 Component 하고 둘 간의 통신을 활성화할 뿐만 아니라 컨테이너가 해당 구성 요소를 관리할 수 있는 방법을 제공합니다.

사이트 구성 요소 이름 등의 각 구성 요소, 컨테이너 관련 정보에 대 한 리포지토리로 사용할 수 있습니다.

구현자 참고

사이트가 되려면 클래스가 인터페이스를 ISite 구현해야 합니다.

속성

Component

클래스에서 구현될 때 ISite와 관련된 구성 요소를 가져옵니다.

Container

클래스에서 구현될 때 IContainer와 관련된 ISite를 가져옵니다.

DesignMode

클래스에서 구현될 때 구성 요소가 디자인 타임인지 여부를 확인합니다.

Name

클래스에서 구현될 때 ISite와 관련된 구성 요소의 이름을 가져오거나 설정합니다.

메서드

GetService(Type)

지정된 형식의 서비스 개체를 가져옵니다.

(다음에서 상속됨 IServiceProvider)

확장 메서드

GetKeyedService<T>(IServiceProvider, Object)

에서 형식 T 의 서비스를 가져옵니다 IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

에서 형식 serviceType 의 서비스 열거형을 IServiceProvider가져옵니다.

GetKeyedServices<T>(IServiceProvider, Object)

에서 형식 T 의 서비스 열거형을 IServiceProvider가져옵니다.

GetRequiredKeyedService(IServiceProvider, Type, Object)

에서 형식 serviceType 의 서비스를 가져옵니다 IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

에서 형식 T 의 서비스를 가져옵니다 IServiceProvider.

CreateAsyncScope(IServiceProvider)

범위 서비스를 확인하는 데 사용할 수 있는 새 AsyncServiceScope를 만듭니다.

CreateScope(IServiceProvider)

범위 서비스를 확인하는 데 사용할 수 있는 새 IServiceScope를 만듭니다.

GetRequiredService(IServiceProvider, Type)

IServiceProvider에서 serviceType 형식의 서비스를 가져옵니다.

GetRequiredService<T>(IServiceProvider)

IServiceProvider에서 T 형식의 서비스를 가져옵니다.

GetService<T>(IServiceProvider)

IServiceProvider에서 T 형식의 서비스를 가져옵니다.

GetServices(IServiceProvider, Type)

IServiceProvider에서 serviceType 형식의 서비스 열거형을 가져옵니다.

GetServices<T>(IServiceProvider)

IServiceProvider에서 T 형식의 서비스 열거형을 가져옵니다.

GetFakeLogCollector(IServiceProvider)

가짜 로거로 전송된 로그 레코드를 수집하는 개체를 가져옵니다.

GetFakeRedactionCollector(IServiceProvider)

종속성 주입 컨테이너에서 가짜 재배포기 수집기 instance 가져옵니다.

적용 대상

제품 버전
.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

추가 정보