ボットのUserDataにオブジェクトを格納しようとしています。私はタイプPersonalDataの変数を必要とする私のルイス・クラスではボットの複雑なオブジェクトにUserDataを格納する方法
public class PersonalData
{
public string Name { get; set; }
public int Age { get; set; }
}
:すべての
まず私は、以下のクラスを持っています。
これは、デバッガが私の意図に決して入り込まないという問題を引き起こしています。それのどこが悪いんだい?私はこのような意図で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