【发布时间】:2020-06-30 08:45:52
【问题描述】:
public class UsersController : APIControllerBase
{
public UsersController() { }
public Client Get()
{
return new Client()
{
ClientID = 1,
// LastUpdate = I want to update this field in middleware
};
}
public Client Get(int id)
{
return new Client()
{
ClientID = id
// LastUpdate = I want to update this field in middleware
};
}
}
public class SetClientLastUpdateMiddleware
{
private readonly RequestDelegate next;
public SetClientLastUpdateMiddleware(RequestDelegate next)
{
this.next = next;
}
public async Task Invoke(HttpContext context)
{
await next(context);
// Can I do something like below?
if(context.ActionResult is Client) ((Client)context.ActionResult).LastUpdate = Date.Now;
}
}
请考虑以上代码。我想为每个端点应用一个处理程序。我不知道中间件是否是一个合适的选择。我需要的是获取端点的操作结果作为其原始类型并对其进行一些更新。如果中间件不是正确的方法,任何建议都将不胜感激。
【问题讨论】:
-
我认为Result Filter 是一个更合适的解决方案。
标签: c# asp.net-core .net-core asp.net-core-webapi middleware