文字列を返すメソッドを備えた WCF サービスがあります。
WCF サービス:
public string selectName(int input)
{
string firstN, surN,result;
con.Open();
SqlCommand cmd = new SqlCommand("SELECT FirstName, Surname FROM tbUserAccounts WHERE StudentID = @ID", con);
cmd.Parameters.Add("@ID", System.Data.SqlDbType.Int).Value = input;
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
firstN= reader["FirstName"].ToString();
surN = reader["Surname"].ToString();
result = firstN + " " + surN;
con.Close();
return result;
}
else
{
con.Close();
return string.Empty;
}
}
このメソッドは Web サービス側で機能します。WCFTest クライアントで試してみたところ、期待される値が返されました。アプリケーション側では、これらの値を使用して静的クラス変数に追加しようとしています:
private void btnSignIn_Click_1(object sender, RoutedEventArgs e)
{
Login._name = ServiceClientObj.selectNameAsync(int.Parse(studentIdBox.Text));
Frame.Navigate(typeof(WelcomePage));
}
' ServiceClientObj.selectNameAsync(int.Parse(studentIdBox.Text)); ' というエラーで下線が引かれています
Cannot implicitly convert type 'System.Threading.Tasks.Task<String> to 'string'
私は WCF サービスに精通していないため、非同期の使用について完全には理解していません。
ヘルプや説明をいただければ幸いです。ありがとうございました。