Comment ajouter IHttpContextAccessor dans le Démarrage de classe dans la DI ASP.NET Core 1.0?

Dans ASP.NET Core RC 1 j'ai utilisé le code suivant pour récupérer la valeur de contexte (adresse complète de la page). Puis j'ai enregistré cette valeur dans la configuration.

public class Startup
{
        public IConfigurationRoot Configuration { get; set; }
        private IHostingEnvironment CurrentEnvironment { get; set; }
        private IHttpContextAccessor HttpContextAccessor { get; set; }
        public Startup(IHostingEnvironment env,
                IHttpContextAccessor httpContextAccessor)
            {                
                var builder = new ConfigurationBuilder()
                    .SetBasePath(env.ContentRootPath)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

                if (env.IsDevelopment())
                {
                    builder.AddUserSecrets();
                }
                builder.AddEnvironmentVariables();
                Configuration = builder.Build();
                CurrentEnvironment = env;
                HttpContextAccessor = httpContextAccessor;
            }
        public void ConfigureServices(IServiceCollection services)
        {
        ...

        services.AddOptions();
        services.Configure<WebAppSettings>(configuration);
        services.Configure<WebAppSettings>(settings =>
        {
            ...
            settings.WebRootPath = CurrentEnvironment.WebRootPath;
            settings.DomainUrl = HttpContextAccessor.HttpContext.Request.Host.ToUriComponent();
        });
        }
   }

Maintenant que j'ai commencé à mettre à jour le projet sur ASP.NET Core 1.0. Mais lors du lancement du site, j'obtiens l'erreur suivante:

Système.InvalidOperationException parvenez pas à résoudre pour le type de service
"Microsoft.AspNetCore.Http.IHttpContextAccessor' lors de la tentative de
activer " MyProject.Démarrage'.

à
Microsoft.Extensions.Interne.ConstructorMatcher.CreateInstance(IServiceProvider
fournisseur) à
Microsoft.Extensions.Interne.ActivatorUtilities.CreateInstance(IServiceProvider
fournisseur, Type de type d'instance, Object[] paramètres) à
Microsoft.Extensions.Interne.ActivatorUtilities.GetServiceOrCreateInstance(IServiceProvider
fournisseur, Type Type) à
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetServiceOrCreateInstance(IServiceProvider
fournisseur, Type Type) à
Microsoft.AspNetCore.De l'hébergement.Interne.StartupLoader.LoadMethods(IServiceProvider
des services, du Type de démarrage du Type, string environmentName) à
Microsoft.AspNetCore.De l'hébergement.<>c__DisplayClass1_0.b__1(IServiceProvider
sp) au
Microsoft.Extensions.DependencyInjection.ServiceLookup.FactoryService.Invoke(ServiceProvider
fournisseur) à
Microsoft.Extensions.DependencyInjection.ScopedCallSite.Invoke(ServiceProvider
fournisseur) à
Microsoft.Extensions.DependencyInjection.SingletonCallSite.Invoke(ServiceProvider
fournisseur) à
Microsoft.Extensions.DependencyInjection.<>c__DisplayClass12_0.b__0(ServiceProvider
fournisseur) à
Microsoft.Extensions.DependencyInjection.Fournisseur de services.La Méthode GetService(Type
serviceType) à
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider
fournisseur, Type de serviceType) à
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider
fournisseur) à
Microsoft.AspNetCore.De l'hébergement.Interne.Hébergeur.EnsureStartup() à
Microsoft.AspNetCore.De l'hébergement.Interne.Hébergeur.EnsureApplicationServices()
chez Microsoft.AspNetCore.De l'hébergement.Interne.Hébergeur.BuildApplication()

.NET Framework X64 v4.0.30319.42000 | Microsoft.AspNetCore.Hébergement
version 1.0.0-rtm-21431 | Microsoft Windows 6.1.7601 S

Comment puis-je obtenir la nouvelle version IHttpContextAccessor au démarrage de l'application?

Si vous regardez les dernières modifications .Net de Base, vous pouvez voir que IHttpContextAccessor n'est plus homologué par défaut. github.com/aspnet/Hosting/issues/793
Merci beaucoup pour le lien.

OriginalL'auteur Kolya_Net | 2016-07-04