我試過使用IActivityLogger來捕獲用戶的對話,有沒有辦法將用戶和機器人的對話編譯爲像變量或會話這樣的臨時持有者?我需要暫時將它存儲在只有當用戶想要與真人對話而不是機器人時纔可用的地方。包含用戶和機器人之前對話的電子郵件將被髮送。我不想將它保存到數據庫,因爲有些用戶不會選擇這樣做。暫時存儲特定用戶的對話
請參閱使用的代碼。 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開始) –