データコードからメソッドを非同期に呼び出そうとすると、次の2つのエラーが表示されます。WebAPI非同期メソッドエラー
これらのエラーを発生させずにメソッドを非同期に呼び出す方法はありますか?
System.Runtime.CompilerServices.IAsyncStateMachineは」が定義されていないか、またはインポート
は、必要なすべての種類を見つけることができません '非同期' 修飾子を。 あなたは間違ったフレームワークバージョンをターゲットにしていますか、 アセンブリへの参照がありませんか?
APIProject.DAL
public class Account : BaseLayer
{
public static Result SignIn(string userName, string userPass)
{
var inputParameters = new Dictionary<string, object>();
inputParameters.Add("IN_USERNAME", userName);
inputParameters.Add("IN_USERPASS", userPass);
var response = ListStoredProcedure(Procedure.SignIn, inputParameters);
var resultSet = new List<User>();
foreach (DataRow row in response.DataTable.Rows)
{
resultSet.Add(new User
{
UserId = row.GetVarchar("USERID"),
Fullname = row.GetVarchar("FULLNAME")
});
}
return new Result
{
HasResult = response.HasResult,
Message = response.Message,
ResultSet = resultSet
};
}
}
APIProject.WebAPI
using System.Threading.Tasks;
public class AccountController : ApiController
{
public async Task<Result> SignIn(LogInModel model)
{
Result r = APIProject.DAL.Account.SignIn(model.UserName, model.UserPass);
return await Task.Factory.StartNew<Result>(() => r);
}
}
コードで 'async'を使用する理由はありません。何も達成されません。あなたができるので、それは非同期です。 – Maarten