【发布时间】:2023-01-05 22:58:03
【问题描述】:
这会很有趣:
app.UseWhenElse(
context => context.condition(),
applicationBuilder => { /* Condition is true */ },
applicationBuilder => { /* Condition is false */ }
});
这将允许我进行基于条件的路由并在一个中间件中处理两个分支。但它不存在。所以我必须使用这个丑陋的结构:
app.UseWhen(
context => context.condition(),
applicationBuilder => { /* Condition is true */ }
});
app.UseWhen(
context => !context.condition(),
applicationBuilder => { /* Condition is false */ }
});
现在,问题是 context.condition() 在这里被调用了两次,这是一个方法,而不是一个值。我不希望此方法执行两次,所以我正在考虑自己编写一个 UseWhenElse()。但我是在重新发明轮子吗?
【问题讨论】:
-
UseWhen 只是一个扩展方法,为什么不自己写一个呢?我会说这比写这个问题花费的时间更少。
标签: c# .net-7.0 minimal-apis