2
我有一個WCF服務,返回一個字符串的方法。無法將類型'System.Threading.Tasks.Task <String>'隱式轉換爲'字符串'
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服務,所以我不完全瞭解有關使用異步的。
任何幫助或解釋將不勝感激。謝謝。
謝謝你,我說「等待」服務客戶對象之前和工作正常!我沒有嘗試你提到的同步方法,但是我想問一下與異步方法相比它有多不同? – TeeHP