我在整个对话框中始终收到此异常:
System.Collections.Concurrent.dll中的'System.Collections.Generic.KeyNotFoundException'
我发现这是由GetAsync
方法引起的,但我不知道为什么。如果有人可以向我解释为什么抛出此异常以及避免该异常的可能方法,我将不胜感激。
我的代码:
protected override async Task OnMessageActivityAsync(
ITurnContext<IMessageActivity> turnContext,
CancellationToken cancellationToken = default(CancellationToken))
{
// ...
var uAccessor = _userState.CreateProperty<UserProfile>(nameof(UserProfile));
var userProfile = await uAccessor.GetAsync(turnContext, () =>
new UserProfile(), cancellationToken); //throws an exception
userProfile.UserInputs.Add(turnContext.Activity.Text?.Trim());
await uAccessor.SetAsync(turnContext, userProfile, cancellationToken);
// ...
}