src/Microsoft.Azure.WebJobs.Extensions.Dapr/DaprWebJobsBuilderExtensions.cs (32 lines of code) (raw):

// ------------------------------------------------------------ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. // ------------------------------------------------------------ namespace Microsoft.Azure.WebJobs.Extensions.Dapr { using System; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Dapr.Services; using Microsoft.Azure.WebJobs.Extensions.Dapr.Utils; using Microsoft.Extensions.DependencyInjection; /// <summary> /// Extension methods for Dapr integration. /// </summary> public static class DaprWebJobsBuilderExtensions { /// <summary> /// Adds the Dapr extension to the provided <see cref="IWebJobsBuilder"/>. /// </summary> /// <param name="builder">The <see cref="IWebJobsBuilder"/> to configure.</param> /// <returns>Returns the updated webjobs builder.</returns> public static IWebJobsBuilder AddDapr(this IWebJobsBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var serviceProvider = builder.Services.BuildServiceProvider(); var nameResolver = serviceProvider.GetRequiredService<INameResolver>(); if (!EnvironmentUtils.ShouldRegisterDaprExtension(nameResolver)) { return builder; } builder.AddExtension<DaprExtensionConfigProvider>() .Services .AddSingleton<IDaprServiceClient, DaprServiceClient>() .AddSingleton<IDaprServiceListener, DaprServiceListener>() .AddSingleton<IDaprClient, DaprHttpClient>() .AddHttpClient(); return builder; } } }