2016-09-22 27 views
0

請查找以下例外。ValidationResult引發:「未將對象引用設置爲對象的實例」。當傳回選項

堆棧跟蹤:異常:捕獲到異常:在 mscorlib.dll中 'Microsoft.Bot.Builder.FormFlow.FormCanceledException1'( 「對象引用不設置到 對象的實例。」)。捕獲到異常: 「Microsoft.Bot.Builder.FormFlow.FormCanceledException1」在 mscorlib.dll中(「未將對象引用設置到對象的實例。」)

嗨,我想生成表單流程並在驗證期間,如果用戶輸入錯誤的文本,然後我通過選擇從中選擇但機器人但拋出異常和模擬器掛起。

下面是

.Field(nameof(RegistrationForm.ModelNumber), validate: async (state, value) => 
{ 
var modelsSuggestion = PimsServiceClient.GetModelSuggestion(); 
ValidateResult validateResult = new ValidateResult() 
{ 
IsValid = modelsSuggestion.Any(m => m.ToLower().Equals(value?.ToString().ToLower())), 
Value = value, 
Choices = new List(modelsSuggestion.Select(s => new Choice { Value = s } })) 
}; 

/* Do some database stuff */ 
    return validateResult; 
}) 
+0

可以共享完整的堆棧跟蹤的NullReferenceException異常的例子? –

+0

你知道「價值」和你選擇的元素的價值嗎?他們中的任何一個是空的? –

回答

0

我又試了試,figred了,我不得不爲所有選擇的屬性值,像下面

var choices = new List<Choice>(); 

choices.Add(new Choice { Description = new DescribeAttribute("Tes1", null, "Tes1", null, null), Value ="Tes1", Terms = new TermsAttribute("Tes1", "T1")}); 

choices.Add(new Choice { Description = new DescribeAttribute("Test2", null, "Test2", null, null), Value = "Test2", Terms = new TermsAttribute("Test2", "T2") }); 

    ValidateResult validateResult = new ValidateResult() 
       { 
       /*if modelSuggestion != null && modelsSuggestion.Any()*/ 
       IsValid = false, 
       Value = value, 
       Choices = choices 
      }; 
相關問題