我们可以像 Minimal API 那样使用 Tag
.CacheOutput(x=x.Tag("people"));
这样我们就可以使用 IOutputCacheStore.EvictByTag("people");
.
但是当涉及到控制器时,我们必须使用没有'Tag'的
[CacheOutput]
属性。没有像[CacheOutput(Tag="people)]
这样的用法,所以我不能使用EvictByTag()
。我不想将我所有的控制器迁移到最小的 API。有没有办法将 Tag 与控制器一起使用?
CacheOutput
构建应用于特定映射端点的缓存策略。您可以在为输出缓存添加服务时声明策略并将策略名称传递给属性:
builder.Services.AddOutputCache(options =>
options.AddPolicy("PeopleTagPolicy", policyBuilder => policyBuilder.Tag("people")));
[OutputCache(PolicyName = "PeopleTagPolicy")]
public class PeopleController : ControllerBase
{
}