C# RequestDelegate函数()
我正在使用以下技术编写一个微服务: 现在,我想知道是否有可能在函数中包含RequestDelegate中的代码,因为这里的代码在lambdas中C# RequestDelegate函数(),c#,asp.net-core,C#,Asp.net Core,我正在使用以下技术编写一个微服务: 现在,我想知道是否有可能在函数中包含RequestDelegate中的代码,因为这里的代码在lambdas中 app.UseRouter(r => { var contactRepo = new InMemoryContactRepository(); r.MapGet("contacts", async (request, response, routeData) => { var contacts =
app.UseRouter(r =>
{
var contactRepo = new InMemoryContactRepository();
r.MapGet("contacts", async (request, response, routeData) =>
{
var contacts = await contactRepo.GetAll();
await response.WriteJson(contacts);
});
r.MapGet("contacts/{id:int}", async (request, response, routeData) =>
{
var contact = await contactRepo.Get(Convert.ToInt32(routeData.Values["id"]));
await response.WriteJson(contact);
});
r.MapGet("contacts/delete/{id:int}", async (request, response, routeData) =>
{
await contactRepo.Delete(Convert.ToInt32(routeData.Values["id"]));
var contacts = await contactRepo.GetAll();
await response.WriteJson(contacts);
});
});
我这样问是因为我们已经有了一些单元,我们需要将其中的代码合并到新的调用中。以上只是示例。是的,它看起来像这样:
app.UseRouter(r =>
{
var contactRepo = new InMemoryContactRepository();
r.MapGet("contacts", GetContacts);
r.MapGet("contacts/{id:int}", GetContact);
r.MapGet("contacts/delete/{id:int}", DeleteContact);
});
private async Task GetContacts(HttpRequest request, HttpResponse response, RouteData routeData)
{
var contact = await contactRepo.Get(Convert.ToInt32(routeData.Values["id"]));
await response.WriteJson(contact);
}
private async Task GetContact(HttpRequest request, HttpResponse response, RouteData routeData)
{
var contact = await contactRepo.Get(Convert.ToInt32(routeData.Values["id"]));
await response.WriteJson(contact);
}
private async Task DeleteContact(HttpRequest request, HttpResponse response, RouteData routeData)
{
await contactRepo.Delete(Convert.ToInt32(routeData.Values["id"]));
var contacts = await contactRepo.GetAll();
await response.WriteJson(contacts);
}