1

私は、EventhubトリガAzure関数(Azure関数が実行されるたびに新しいインスタンスを作成)の実行ごとにインスタンスを共有するように依存関係を登録しようとしています。Azure関数のAutofac InstancePerRequestスコープ

私は以下のように登録してみました:

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

しかし、それはタグマッチングと

ませスコープを言っていない障害が発生した「AutofacWebRequest」インスタンスが

を要求された 範囲から見えます

このケースを処理する方法はありますか?

。ここ

+0

私はDIがAzureの機能のために適切にサポートされているとは思っていません。 – Mikhail

+0

どのように依存関係を解決しますか? –

+0

run.csxからエントリーポイントクラス(.dllであり、仕事の大半を占める)を手動で解決します – Tany

答えて

4

2つの問題:

  1. DIは本当に登録と注射が困難に、今日Azureの機能でサポートされていません。
  2. イベントハブは、あなたが今日半働いた状態にAutofacを持っている場合はAutofacでサポートされているリクエストごとに建て寿命が

を動作しないでしょうになるような機能は、Web要求のコンテキスト内で実行しないトリガあなたは@mjwillsの提案を試して、与えられた呼び出しに対して生涯のスコープを定義することができます(これは要求ごとの機能を使用するのと同じくらい簡単ではありません)。

DIストーリーを強化するために、WebJobs SDKとFunctions Host/Runtimeで作業が行われています。一部の作業は、追跡できる.NETコアの移行に関連しているか依存しています。here

+0

私たちのレポのもう一つの関連する問題:https://github.com/Azure/azure-webjobs-sdk- Script/Issues/586 – mathewc

+0

@ mjwillsの提案を教えてください。 – Tany

+0

彼のコメントは削除されたようですが、Autofacの有効期間の詳細についてはこちらをご覧ください:http://docs.autofac.org/en/latest /lifetime/working-with-scopes.html –