C# 如何调用async Task类型的方法<;IHttpActionResult>;来自另一个项目?
我有一个C#Azure应用程序,在我的解决方案中有两个网站。一个是用户点击的外向网站,另一个是网站点击创建用户的API,等等 在第二个项目(API项目)中,我用以下代码构建了一个C# 如何调用async Task类型的方法<;IHttpActionResult>;来自另一个项目?,c#,asp.net-mvc,api,azure,C#,Asp.net Mvc,Api,Azure,我有一个C#Azure应用程序,在我的解决方案中有两个网站。一个是用户点击的外向网站,另一个是网站点击创建用户的API,等等 在第二个项目(API项目)中,我用以下代码构建了一个Register方法: // POST api/Account/Register [AllowAnonymous] [Route("Register")] public async Task<IHttpActionResult> Register(UserModel userModel) { if
Register
方法:
// POST api/Account/Register
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(UserModel userModel)
{
if (!ModelState.IsValid) {
return BadRequest(ModelState);
}
IdentityResult result = await _repo.RegisterUser(userModel);
IHttpActionResult errorResult = GetErrorResult(result);
if (errorResult != null) {
return errorResult;
}
return Ok();
}
SecondProject.API.Controllers.AccountController UserApiController = new SecondProject.API.Controllers.AccountController();
UserApiController.Register(UserApiModel);
visual studio警告我应该使用wait
因此,如果我加上:
await UserApiController.Register(UserApiModel);
VisualStudio告诉我,await
操作符只能在异步方法中使用
如何在
SecondProject.API中调用我的Register
方法,从我的第一个项目开始,通过服务器代码???
您需要将调用方法声明为async
编辑:
这样说,您不应该在代码中创建控制器和调用方法。您应该像在控制器方法中一样使用存储库
public async Task CallingMethod()
{
//...
IdentityResult result = await _repo.RegisterUser(userModel);
//Do something with the result
//...
}
VS正在引导您正确使用。返回
Task
的方法应该是await
ed。要使用await
,调用方法必须是async
。没有什么不寻常的,我认为VS的信息非常清楚。注意async
将通过代码库“增长”;这是完全自然的,应该接受。
public async Task CallingMethod()
{
//...
IdentityResult result = await _repo.RegisterUser(userModel);
//Do something with the result
//...
}