コード例 #1
0
        /// <summary>
        /// Locates and adds local.settings.json to the configuration and scans
        /// all configuration values for Azure KeyVault macros
        /// and replaces them with actual values.
        /// <para />
        /// Uses IHostingEnvironment.IsDevelopment() implicitly.
        /// </summary>
        /// <typeparam name="TStartup">The web jobs / Azure Function startup class</typeparam>
        /// <param name="webJobsBuilder"></param>
        /// <returns></returns>
        public static IWebJobsBuilder TransformKeyVaultMacros <TStartup>(this IWebJobsBuilder webJobsBuilder)
            where TStartup : class
        {
            var hostingEnvironment = webJobsBuilder.Services
                                     .FirstOrDefault(d => d.ServiceType == typeof(IHostingEnvironment))?.ImplementationInstance as IHostingEnvironment;

            if (!hostingEnvironment.IsDevelopment())
            {
                return(webJobsBuilder);
            }

            webJobsBuilder.AddConfiguration(configurationBuilder => configurationBuilder
                                            .AddLocalSettings <TStartup>()
                                            .TransformKeyVaultMacrosAsync().Wait());

            return(webJobsBuilder);
        }