2017-08-01 6 views
2

J'utilise l'injection de dépendance d'extension Microsoft dans Sitecore 8.2 mise à jour 4 avec cadre Helix, voici mon code:Comment utiliser Microsoft.Extensions.DependencyInjection dans Http Handler Sitecore?

public class TestTextHandler : IHttpHandler 
{ 
    private readonly ITest _test; 

    public TestTextHandler(Test test) 
    { 
     _test = test; 
    } 
} 

public interface ITest 
{ 
} 

public class Test : ITest 
{ 
} 

public class RegisterContainer : IServicesConfigurator 
{ 
    public void Configure(IServiceCollection serviceCollection) 
    { 
     serviceCollection.AddTransient<ITest, Test>(); 
    } 
} 

Un fichier patch:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
    <services> 
     <configurator type="XX.XX.RegisterContainer, XX.XX" /> 
    </services> 
    </sitecore> 
</configuration> 

Je reçois Constructor d'erreur du type « XX .XX.TestTextHandler 'introuvable.

Répondre

0

J'ai juste essayé votre code ci-dessus (plus l'implémentation d'interface de IHttpHandler) et cela a très bien fonctionné avec la solution Habitat. Vérifiez que l'assembly est publié dans le dossier/bin et que la configuration est correcte. (AF: J'ai même vérifié la ShowServicesConfig.aspx pour vous assurer qu'il devient chargé et il le fait avec une durée de vie transitoire.)

+0

Merci, Permettez-moi de vérifier – SKG

+0

ne fonctionne pas pour moi. Ce sera génial si vous pouvez partager votre code. – SKG

1

Vous obtenez l'erreur parce que vous avez configuré votre TestTextHandler pour prendre un objet concret Test au lieu d'un objet qui hérite de votre interface ITest.

Vous devez changer votre déclaration constructeur: public TestTextHandler(ITest test)