IActivityLoggerを使用してユーザーの会話をキャプチャしようとしましたが、ユーザーやボットの会話を変数やセッションのような一時的な所有者にコンパイルする方法はありますか?私は、ユーザーがボットの代わりに本物の人と話したがっているときにのみ、すぐに利用できる場所に一時的に格納する必要があります。ユーザーとボットの前の会話を含む電子メールが送信されます。私はそれをDBに保存したくはありません。なぜなら、一部のユーザーはそれを選択しないからです。特定のユーザーの会話を一時的に保存する
「使用されるコード」を参照してください。 Loggerクラス:
public class Logger:IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
var a = ($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}" + "\b\r");
}
}
グローバルAsax:
protected void Application_Start()
{
var builder = new ContainerBuilder();
builder.RegisterType<Logger>().AsImplementedInterfaces().InstancePerDependency();
builder.Update(Conversation.Container);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
問題点を教えてください。 userId:conversationIdをキーに使用して辞書を使用し、メッセージリストを値として使用することを検討しましたか? –
簡単にするために、文字列プロパティを使用して値を保持しようとしましたが、ボットが応答するとすぐにプロパティは保持されません。 – anonymous1110
BotStateを試してみて、そこに保存することができます(または静的なプロパティで開始:P) –