1

J'essaie d'avoir une dépendance enregistrée pour partager une instance par exécution de la fonction Azure déclenchée par Eventhub (créer une nouvelle instance à chaque exécution de la fonction Azure).Portée Autofac InstancePerRequest dans Azure Function

J'ai essayé s'inscrire comme ci-dessous:

builder.RegisterType<TrialClass>().As<ITrialClass>().InstancePerRequest(); 

Mais il ne parvient dire

Aucune portée avec une correspondance de balise 'AutofacWebRequest' est visible du champ d'application dans laquelle l'instance a été demandé

Existe-t-il un moyen de gérer ce cas?

.

+0

Je ne pense pas encore que DI soit correctement pris en charge pour les fonctions Azure – Mikhail

+0

Comment résoudre cette dépendance? –

+0

Je résous manuellement la classe de point d'entrée (qui est un .dll et fait la majeure partie du travail) de run.csx – Tany

Répondre

4

deux questions:

  1. DI pas vraiment pris en charge dans les fonctions Azure aujourd'hui, ce qui rend difficile l'enregistrement et l'injection.
  2. Hubs Déclenchée par un événement fonctions n'exécutent pas dans le cadre d'une requête Web, pour ainsi construit en par demande vie soutenue par Autofac ne fonctionnerait pas

Si vous avez Autofac dans un état de fonctionnement semi aujourd'hui, vous pouvez essayer la suggestion de @mjwills et définir une portée à vie pour une invocation donnée (ce ne sera pas aussi trivial que d'utiliser la fonctionnalité par requête, mais faisable).

Nous avons du travail dans le SDK WebJobs et les fonctions Hôte/Exécution pour améliorer l'histoire DI. Une partie du travail est liée ou dépend de la migration de base .NET, vous pouvez suivre here.

+0

Un autre problème connexe dans notre repo ici: https://github.com/Azure/azure-webjobs-sdk- script/issues/586 – mathewc

+0

Pouvez-vous me signaler la suggestion de @ mjwills s'il vous plaît .. – Tany

+0

On dirait que son commentaire a été supprimé, mais vous pouvez trouver plus d'informations sur les champs de la vie Autofac ici: http://docs.autofac.org/en/latest /lifetime/working-with-scopes.html –