2017-10-12 49 views
0

我將自己的LUIS實體從datetime轉換爲datetimeV2 &正在運行Bot.Builder 3.11.0。在代碼中,以下行提取的EntityRecommendationLUIS V2日期時間分辨率無法在C#中獲得

result.TryFindEntity("builtin.datetimeV2.date", out startDate) 

生成的對象不允許我在所有達到「天美時」值。我如何訪問這些決議?當我嘗試訪問「timex」它說不能使用[] enter image description here

回答

0

它有點冗長,但它是可行的。你需要做:

if (result.TryFindEntity("builtin.datetimeV2.date", out EntityRecommendation dateEntity)) 
{ 
    var resolutionValues = (IList<object>)dateEntity.Resolution["values"]; 

    var values = (IDictionary<string, object>)resolutionValues[0]; 

    await context.PostAsync($"Timex: {values["timex"]}"); 
    await context.PostAsync($"Type: {values["type"]}"); 
    await context.PostAsync($"Value: {values["value"]}"); 
} 

我創建了一套擴展方法,你可能會覺得有用。檢查https://github.com/ejadib/LUIS-DateTimeV2-Extensions