【发布时间】:2020-11-09 09:19:45
【问题描述】:
我正在尝试将中间件添加到 echo bot 中,将消息转换为小写。
我创建了继承自 IMiddleware 的中间件类
public class MiddlewareOne : IMiddleware
{
public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken = default)
{
if(turnContext.Activity.Type == ActivityTypes.Message)
{
Debug.WriteLine(turnContext.Activity.Text);
turnContext.Activity.Text = turnContext.Activity.Text.ToLower();
await next(cancellationToken);
Debug.WriteLine(turnContext.Activity.Text);
}
else
{
await next(cancellationToken);
}
}
}
}
现在我正在尝试将其添加到 Startup.cs 文件中。我在某处发现它应该被添加为瞬态。
services.AddTransient<MiddlewareOne>();
仍然无法正常工作。我觉得 MiddlewareOne 类是可以的,但是在 Startup.cs 文件中应该如何配置呢?
谢谢
【问题讨论】:
-
我发现适配器通过 Use() 只支持 2 个中间件。如果您尝试 Use() 第三个中间件,它会被忽略。您是否注意到这一点或知道向管道添加超过 2 个中间件的解决方案?
标签: c# botframework middleware