2
C에서 firstRun 용 미들웨어를 만들려고하고 있는데 데이터를 저장하지 못하는 것 같습니다. 컨텍스트가 미들웨어에 존재하지 않으므로 다음 구문을 사용하여 데이터를 저장합니다. 그것은 저장하지 않을뿐만 아니라 다음에 대해 궁금합니다.BotData 저장하지 않음
왜 일반 대화 상자에 저장하면 SetValue에 대한 액세스 권한이 있으며 여기서 SetProperty에 대한 액세스 권한 만 있습니까?
public class FirstRunActivityLogger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
var allActivity = (Activity)activity;
StateClient stateClient = allActivity.GetStateClient();
BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id);
if (!userData.GetProperty<bool>("FirstRun"))
{
Debug.WriteLine($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}");
userData.SetProperty<bool>("FirstRun", true);
}
}
}