Bot의 UserData에 객체를 저장하려고합니다. 나는 형 PersonalData의 변수를 필요로 내 루이스 클래스에서Bot의 복잡한 객체에 UserData를 저장하는 방법
public class PersonalData
{
public string Name { get; set; }
public int Age { get; set; }
}
: 모든
먼저 나는 다음과 같은 클래스가 있습니다.
public class Luis : LuisDialog<object>
{
PersonalData personalData;
이것은 이미 디버거가 내 의도에 전혀 빠지지 않는 문제를 발생시킵니다. 그게 뭐가 잘못 됐어? 나는이 같은 의도에 PersonalData의 객체를 생성하는 경우
이제 :
PersonalData personalData = new PersonalData();
이 성공적으로 작성됩니다. 하지만 프로그램이 userName
에 personalData.Name
가 나는 NullReferenceException
내 PersonalData
오브젝트가 null을 얻을 설정하려고하자마자 내 객체
if (!context.UserData.TryGetValue(ContextConstants.personalData, out personalData))
{
personalData.Name = userName;
context.UserData.SetValue(ContextConstants.personalData, personalData.Name);
}
에 값을 할당 할 때. userName이 비어 있지 않음을 두 번 확인했습니다.
무엇이 누락 되었습니까?
미리 감사드립니다.
다음과 같은 IF 문 다음에 PersonalData 개체를 초기화해야했습니다. personalData = new PersonalData(); 그리고 나서 당신의 솔루션으로 잘 돌아갔습니다. – Soeren
"TryGetValue"함수가 실패하면 out 값은 null로 설정됩니다. 그래서 먼저 개체 변수를 초기화 한 다음 값을 설정해야합니다. – Soeren