Share via


ServiceCollectionExtensions

. ServiceCollectionExtensions NET MAUI IServiceCollection내에서 Views 및 관련 ViewModel 등록을 간소화하는 일련의 확장 메서드를 제공합니다.

ServiceCollectionExtensions 네임스페이 CommunityToolkit.Maui 스 아래에서 찾을 수 있으므로 시작하려면 다음 줄을 추가하기만 하면 됩니다.

using CommunityToolkit.Maui;

참고: 이러한 확장 메서드는 View 및 ViewModels만 등록합니다 IServiceCollection. 개발자는 ViewModel의 삽입된 인스턴스를 View의 속성에 BindingContext 할당할 책임이 있습니다.

또한 이러한 확장 메서드는 View와 ViewModel 간에 일대일 관계가 있고 둘 다 동일한 수명을 공유한다고 가정합니다. 개발자는 서로 다른 수명을 지정하거나 여러 뷰에서 동일한 ViewModel을 사용하는 시나리오를 처리하기 위해 Views 및 ViewModel을 개별적으로 등록하도록 되돌리기 합니다.

뷰 및 ViewModel 등록

다음 메서드를 사용하면 .NET MAUI 내에서 Views 및 ViewModel을 등록할 수 있습니다 IServiceCollection.

AddScoped<TView, TViewModel>(IServiceCollection)

TView에 지정된 형식의 범위가 지정된 뷰 및 TViewModel 형식의 ViewModel을 지정된 IServiceCollection에 추가합니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScoped<HomePage, HomePageViewModel>();
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 BindableObject

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

AddSingleton<TView, TViewModel>(IServiceCollection)

TView에 지정된 형식의 Singleton View 및 TViewModel 형식의 ViewModel을 지정된 IServiceCollection에 추가합니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingleton<HomePage, HomePageViewModel>();
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 BindableObject

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

AddTransient<TView, TViewModel>(IServiceCollection)

TView에 지정된 형식의 임시 뷰와 TViewModel 형식의 ViewModel을 지정된 IServiceCollection에 추가합니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransient<HomePage, HomePageViewModel>();
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 BindableObject

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

셸 경로를 사용하여 뷰 및 ViewModel 등록

다음 메서드를 사용하면 .NET MAUI 내에서 Views 및 ViewModels를 등록하고 .NET MAUI IServiceCollection Shell 라우팅 내에서 뷰에 대한 경로를 명시적으로 등록할 수 있습니다.

AddScopedWithShellRoute<TView, TViewModel>(서비스, 경로, 팩터리)

TViewModel 형식의 TView 및 ViewModel에 지정된 형식의 범위가 지정된 뷰를 지정된 IServiceCollection에 추가하고 경로 매개 변수에 지정된 경로에서 셸 탐색에 대한 보기를 등록합니다. 뷰 생성을 제어하기 위한 선택적 RouteFactory 옵션을 제공할 수 있습니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddScopedWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 NavigableElement

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

routestring

.NET MAUI Shell 내에서 뷰를 탐색할 수 있는 경로입니다.

factory (optional) RouteFactory

RouteFactory 뷰 생성을 제어할 수 있습니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

AddSingletonWithShellRoute<TView, TViewModel>(서비스, 경로, 팩터리)

TViewModel 형식의 TView 및 ViewModel에 지정된 형식의 Singleton View를 지정된 IServiceCollection에 추가하고 경로 매개 변수에 지정된 경로에서 셸 탐색에 대한 보기를 등록합니다. 뷰 생성을 제어하기 위한 선택적 RouteFactory 옵션을 제공할 수 있습니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddSingletonWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 NavigableElement

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

routestring

.NET MAUI Shell 내에서 뷰를 탐색할 수 있는 경로입니다.

factory (optional) RouteFactory

RouteFactory 뷰 생성을 제어할 수 있습니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

AddTransientWithShellRoute<TView, TViewModel>(서비스, 경로, 팩터리)

TViewModel 형식의 TView 및 ViewModel에 지정된 형식의 임시 보기를 지정된 IServiceCollection에 추가하고 경로 매개 변수에 지정된 경로에서 셸 탐색에 대한 보기를 등록합니다. 뷰 생성을 제어하기 위한 선택적 RouteFactory 옵션을 제공할 수 있습니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientWithShellRoute<HomePage, HomePageViewModel>("HomePage");
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 NavigableElement

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

routestring

.NET MAUI Shell 내에서 뷰를 탐색할 수 있는 경로입니다.

factory (optional) RouteFactory

RouteFactory 뷰 생성을 제어할 수 있습니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

팝업 보기 및 보기 모델 등록

다음 메서드를 사용하면 .NET MAUI 내에서 팝업 기반 Views 및 ViewModel을 등록할 수 있습니다 IServiceCollection.

AddTransientPopup<TPopupView, TPopupViewModel>(IServiceCollection)

TPopupView에 지정된 형식의 임시 뷰와 TPopupViewModel 형식의 ViewModel을 지정된 IServiceCollection에 추가합니다.

using CommunityToolkit.Maui;

namespace CommunityToolkit.Maui.Sample;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder()
                            .UseMauiCommunityToolkit()
                            .UseMauiApp<App>();

        builder.Services.AddTransientPopup<UpdatingPopup, UpdatingPopupViewModel>();
    }
}

형식 매개 변수

TView

추가할 보기의 형식입니다. 다음으로 제한됨 Popup

TViewModel

추가할 ViewModel의 형식입니다. 구현하는 참조 형식으로 제한됨 INotifyPropertyChanged

매개 변수

servicesIServiceCollection

View 및 ViewModel을 추가할 IServiceCollection입니다.

반품

작업이 완료된 후 IServiceCollection 이 인스턴스에 대한 참조입니다.

API

.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 ServiceCollectionExtensions 소스 코드를 찾을 수 있습니다.