私は、Microsoft Bot FrameworkとAutofacを使用してボットを構築しようとしています。 私は2 の間で共有されるサービスを持っています。ダイアログと最初のダイアログは、ユーザー応答に基づいてもう一方をインスタンス化します。私ダイアログインサイド 私はこの行を呼び出す:context.For autofacを使用する方法
await context.Forward(new StepDialog(_productProvider, _groups, _products, 0), ResumeAfter, new Activity { Text = category }, CancellationToken.None);
をしかし、私はこれが正しいとは思いません。私のコントローラでは、私はこれを実行します。
// Create our scope
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, model))
{
// Create our conversation
await Conversation.SendAsync(model,() => scope.Resolve<IDialog<object>>());
};
をだから私は、私は(私のサービスである)ProductProviderへの参照を維持しながら、私のStepDialogのインスタンスを取得するために類似した何かをしていることを前提としています。
私は最初のダイアログのコンストラクタにスコープを渡すことを考えましたが、これは悪い考えですが、どうすればこのことを知ることができますか?
を使用されている方法ですこの質問の範囲:) – r3plica