私が知っている非常に具体的な質問ですが、より一般的にはBotFramework SDKのAutofacの使用にうまく適用されます。AutofacのIComponentContextはBotBuilderサンプルでどのように解決されますか?
'ContosoFlowers'サンプルでは、DialogFactoryクラスはその1つのコンストラクタパラメータとして、 'scope'メンバのAutofac IComponentContextを受け取ります。
しかし、私はこれがどこから来ているのか分からない。とにかくDIの不合理な憎しみがありますが、これを何らかの形で具体的な実装に結びつけるブートストラップ/サービスロケータ/モジュールなどはまだありません。明らかなモジュールはありません。 BotFrameworkコードのどこかで焼かれていますか?
また、このすべてを持っている目的が何であるか尋ねることができますDialogFactory.ContosoFlowersDialogFactory.Create()
層ですか?たとえば、this.dialogFactory.Create<FlowerCategoriesDialog>()
と呼んだ場合、これは私が想定しているのは、ダイアログを「新しくする」ことを避けることです。また、DIスコープが呼び出しダイアログで使用できないためです。その場合、なぜこのファクトリをRootDialogに注入し、IComponentContextスコープ自体に注入しないのですか?
noobの質問にはお詫び申し上げます(おそらく)。また、特定のBotFrameworkサンプルコードクエリのためのより良い場所/フォーラムがあるかどうかアドバイスしてください。ありがとう!
偉大な答え。ありがとう。オートファックは私が思ったよりも役に立つと分かりました:) 私は、この文脈でのインスタンシエーションへの工場のアプローチは主観的であると考えています。個人的には、あなたのアプリケーションでは、DIフレームワークを使用する価格として世界中で利用可能なオートファックの幽霊を犠牲にしているという見方があります。層。しかし、オプションがあるのは良いことです。 – oflahero