オブジェクトからメソッドに送信された変数からデータを取得するためにリフレクションを使用しようとしていますが、次のエラーが発生します: "オブジェクト参照がオブジェクトのインスタンスに設定されていません。C#リフレクションでNullRefferenceExceptionがスローされる
コード:私はデバッグしようとしているよう
public object SendNetworkData(object input, Classes.Macro Command)
{
if (input is Classes.Authentication)
{
string Username = input.GetType().GetProperty("UserName").GetValue(input, null).ToString();
string Password = input.GetType().GetProperty("Password").GetValue(input, null).ToString();
Classes.Authentication InputAccount = new Classes.Authentication(Username, Password);
return InputAccount;
}
}
問題は、5行目で発生する、と私は時計に入力を入力すると、私はこれを取得: Debug watch。
入力にはこれら2つのメンバーが含まれていますが、何らかの理由で「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。例外。このエラーの原因は何ですか?
"UserName"という名前のプロパティを取得しようとしています。 「ユーザー名」にする必要があります。 –
'GetProperty()'は、その名前の(public)プロパティがオブジェクト内に見つからなかった場合に 'null'を返します。だから、 'UserName'のスペルは正しいのでしょうか(大文字小文字を区別します!) –
はい、UserNameからUsernameに変更しましたが、それでも問題は解決しません。 –