Start Debugging

MAUI: Como registrar handlers em uma biblioteca

Aprenda a registrar view handlers e serviços de dentro de uma biblioteca .NET MAUI usando o padrão builder e os métodos de extensão do MauiAppBuilder.

Quer você esteja desenvolvendo uma biblioteca de controles personalizados ou apenas organizando sua solução em vários projetos, é bem provável que acabe na situação de querer registrar alguns view handlers e serviços de dentro de uma biblioteca MAUI.

Para começar, não existe registro com configuração zero. O MAUI usa um padrão builder para criar a aplicação e você precisará de acesso a esse builder para registrar seus handlers e serviços.

A melhor abordagem para esse problema é definir uma classe estática com um método de extensão de MauiAppBuilder no projeto da sua biblioteca. Veja um exemplo abaixo:

public static class Config
{
    public static MauiAppBuilder UseMyPlugin(this MauiAppBuilder builder)
    {
        builder.ConfigureMauiHandlers(handlers =>
        {
            handlers.AddHandler(typeof(MyView), typeof(MyViewHandler));
        });

        builder.Services.AddSingleton<IMyService, MyService>();

        return builder;
    }
}

Esse tipo de implementação segue o padrão builder e pode ser facilmente integrada ao projeto consumidor. Você só precisa ir até o Program.cs do MAUI e adicionar um .UseMyPlugin() na cadeia de chamadas do app builder.

public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();

    builder
        .UseMauiApp<App>()
        .UseMyPlugin()
        .ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        });


    return builder.Build();
}

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar