C# 如何传入异步函数以接收函数类中的值
我有一组函数,我想传递给另一个函数在该函数中执行。 下面是我的尝试。最后一个是我试图与泛型函数一起使用的 我的控制器功能C# 如何传入异步函数以接收函数类中的值,c#,automapper,func,C#,Automapper,Func,我有一组函数,我想传递给另一个函数在该函数中执行。 下面是我的尝试。最后一个是我试图与泛型函数一起使用的 我的控制器功能 [HttpPost] public async Task<Client> CreateClient([FromBody] Client client) { return GetMap(client, _clientRepo.AddAsync); } public static Task<Client> GetMap(Client client
[HttpPost]
public async Task<Client> CreateClient([FromBody] Client client)
{
return GetMap(client, _clientRepo.AddAsync);
}
public static Task<Client> GetMap(Client client, Func<Data.Models.Client, Client> func)
{
var map = Mapper.Map<Client, Data.Models.Client>(client);
var ret = func(map);
return Mapper.Map<Data.Models.Client, Client>(ret);
}
[HttpPost]
公共异步任务CreateClient([FromBody]客户端)
{
返回GetMap(client,_clientRepo.AddAsync);
}
映射函数
[HttpPost]
public async Task<Client> CreateClient([FromBody] Client client)
{
return GetMap(client, _clientRepo.AddAsync);
}
public static Task<Client> GetMap(Client client, Func<Data.Models.Client, Client> func)
{
var map = Mapper.Map<Client, Data.Models.Client>(client);
var ret = func(map);
return Mapper.Map<Data.Models.Client, Client>(ret);
}
公共静态任务GetMap(客户端,Func-Func)
{
var map=Mapper.map(客户端);
var ret=func(map);
返回Mapper.Map(ret);
}
工作功能
[HttpPost]
public async Task<Client> CreateClient([FromBody] Client client)
{
var map = Mapper.Map<Client, Data.Models.Client>(client);
var ret = await _clientRepo.AddAsync(map);
return Mapper.Map<Data.Models.Client, Client>(ret);
}
[HttpPost]
公共异步任务CreateClient([FromBody]客户端)
{
var map=Mapper.map(客户端);
var ret=wait_clientRepo.AddAsync(map);
返回Mapper.Map(ret);
}
异步函数不能返回数据。模型。客户端
它只能返回任务
任务
或无效
您应该获得Func
作为参数
如果您想要针对异步实现和非异步实现,我将为您的方法创建两个重载,一个异步重载和一个非异步重载
public static async Task<Client> GetMap(Client client, Func<Task<Data.Models.Client>, Client> func)
{
var map = Mapper.Map<Client, Data.Models.Client>(client);
var ret = await func(map);
return Mapper.Map<Data.Models.Client, Client>(ret);
}
public static Task<Client> GetMap(Client client, Func<Data.Models.Client>, Client> func)
{
var map = Mapper.Map<Client, Data.Models.Client>(client);
var ret = func(map);
return Mapper.Map<Data.Models.Client, Client>(ret);
}
public静态异步任务GetMap(客户端,Func-Func)
{
var map=Mapper.map(客户端);
var ret=等待函数(map);
返回Mapper.Map(ret);
}
公共静态任务GetMap(客户端、Func、客户端>Func)
{
var map=Mapper.map(客户端);
var ret=func(map);
返回Mapper.Map(ret);
}
其他功能是什么样子的?看起来您只是想让它接受一个Func
参数?我不确定Mapper.Map()
是否返回任务,但我假设它返回,因为它是您的返回类型