C# 如何调用async Task类型的方法<;IHttpActionResult>;来自另一个项目?

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

我有一个C#Azure应用程序,在我的解决方案中有两个网站。一个是用户点击的外向网站,另一个是网站点击创建用户的API,等等

在第二个项目(API项目)中,我用以下代码构建了一个
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
    //...
}