如何在bots中使用状态clinet保存数据

如何在bots中使用状态clinet保存数据,bots,botframework,botbuilder,Bots,Botframework,Botbuilder,您好,我正在从事bot项目,因为我在bot状态服务中使用StateClient保存当前日期,格式如下(2016-09-23T18:38:41)。在这里,我面临的问题是,当我使用SetProperty()方法保存日期值时,它工作正常,但当我想使用GetProperty()方法获取值时,它给出了错误的日期格式,如(1/1/0001 12:00:00 am)。 对于上述概念,我在我的项目中编写了以下代码行 在这里输入代码 var result = new ValidateResult { IsVal

您好,我正在从事bot项目,因为我在bot状态服务中使用StateClient保存当前日期,格式如下(2016-09-23T18:38:41)。在这里,我面临的问题是,当我使用SetProperty()方法保存日期值时,它工作正常,但当我想使用GetProperty()方法获取值时,它给出了错误的日期格式,如(1/1/0001 12:00:00 am)。 对于上述概念,我在我的项目中编写了以下代码行 在这里输入代码

 var result = new ValidateResult { IsValid = true, Value = message.Text };
 DateTime? dt = DateTime.ParseExact(message.Text, "dd/MM/yyyy",      CultureInfo.InvariantCulture);
                if (dt.Value.Date < DateTime.Now.Date)
                {
                    await context.PostAsync("**Please enter a valid date like in the format DD/MM/YYY**" + " \r \n ");
                    result.IsValid = false;
                }
     else
      {
                    TimeSpan ts = new TimeSpan(DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
                    dt = dt.Value.Date + ts;
                    d = dt.Value.Date + ts;
                    result.Value = dt;

      //saving the date format using SetProperty() using StateClient and BotData
                    BotData userData = await stateClient.BotState.GetUserDataAsync(message.ChannelId, message.From.Id);
                    userData.SetProperty<DateTime?>("dt", dt);-->Here i am saving the date format like (2016-09-23T18:38:41)
                    await stateClient.BotState.SetUserDataAsync(message.ChannelId, message.From.Id, userData);
                    await context.PostAsync("user message");
                }



     //Getting the data using GetProperty() using BotData
         BotData userData = await stateClient.BotState.GetUserDataAsync           (message.ChannelId, message.From.Id);
        var date= userData.GetProperty<DateTime>("dt");-->here i am getting the date format is like(1/1/0001 12:00:00 AM)
var result=newvalidateresult{IsValid=true,Value=message.Text};
约会时间?dt=DateTime.ParseExact(message.Text,“dd/MM/yyyy”,CultureInfo.InvariantCulture);
if(dt.Value.Date这里我保存的日期格式如下(2016-09-23T18:38:41)
等待stateClient.BotState.SetUserDataAsync(message.ChannelId、message.From.Id、userData);
wait context.PostAsync(“用户消息”);
}
//使用BotData使用GetProperty()获取数据
BotData userData=await stateClient.BotState.GetUserDataAsync(message.ChannelId,message.From.Id);
var date=userData.GetProperty(“dt”);-->这里我得到的日期格式是(1/1/0001 12:00:00 am)

请告诉我上述代码中的问题是什么以及如何解决它。

很可能您在用户bot数据包GetUserDataAsync和SetUserDataAsync操作中没有使用一致的(message.ChannelId、message.From.Id),因为DateTime是一种值类型,GetProperty返回默认值(DateTime)价值观