は、私が何を探していることは、ボットがユーザーに送信するメッセージを変更することであることを前提としています。
もちろん、基本的なオプションは、チャンネルをチェックするためのロジックをボットダイアログに追加するだけです。それだけです。あなたが本当にきれいなアプローチに行きたい場合、私は、今
context.PostAsync(Utils.TransformMessage(message));
:しかし、私はまた、あなたがすることができますどこかだけの静的メソッドを意味する可能性がある、あなたは他のダイアログでそのロジックを再利用したい疑います独自のIMessageActivityMapper
を実装し、それをAutofacコンテナに登録する必要があると思うので、実装がそれを呼び出すことになります(here参照)。
IMessageActivityMapper
hereとhereのいくつかの実装があります。インターフェイスは本当にシンプルであり、あなたがIMessageActivity
を受け取ったという考えがありますが、既存のプロパティを更新して(あなたの場合はTextプロパティになります)、更新されたIMessageActivity
を返してユーザに投稿できるようにします。
実装が完了したら、Global.asax.cs
で次のようにAutofacに登録することができます。
protected void Application_Start(object sender, EventArgs e)
{
{
// http://docs.autofac.org/en/latest/integration/webapi.html#quick-start
var builder = new ContainerBuilder();
// Register your mapper
builder
.RegisterType<MyActivityMapper>()
.AsImplementedInterfaces()
.SingleInstance();
// Get your HttpConfiguration.
var config = GlobalConfiguration.Configuration;
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
// Set the dependency resolver to be Autofac.
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
}