gpt4 book ai didi

c# - 将 Task 异步转换为 Task

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:46 24 4
gpt4 key购买 nike

我正在将内部身份验证服务与 MembershipProvider 集成。自定义提供商:

    public override MembershipUser CreateUser(
string username,
string password,
string email,
string passwordQuestion,
string passwordAnswer,
bool isApproved,
object providerUserKey,
out MembershipCreateStatus status)
{

//var res = client.Register(username, password, email);
//status = MembershipCreateStatus.Success; // conver to Mem
return null;

问题出在客户端。 如何将一项任务转换为另一项任务?

    public async Task<MembershipUser> Register(string username, string password, string email, bool isStaff=false)
{
var task = serviceFoo.Register(username, password, email, isStaff);
// TODO Task<RegisteredUser> -> Task<MembershipUser>
//var convertedTask = task.
//return new Task<MembershipUser>();
}

我想:

  • 异步执行
  • 我不希望 RegisteredUser 对提供商可见。

我会写一个RegUser的扩展方法来进行对话,但是我不知道如何异步转换任务。

最佳答案

它看起来不像你真的想从 Task<RegisteredUser> 转换至 Task<MembershipUser> , 你想从 RegisteredUser 转换至 MembershipUser ,假设您有您提到的转换扩展方法,只需执行以下操作:

public async Task<MembershipUser> Register(string username, string password, string email, bool isStaff=false)
{
var user = await serviceFoo.Register(username, password, email, isStaff);// user is RegisteredUser
return user.ConvertTomembershipUser();

}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com