В MVC и большинстве других фреймворков службы, которые я пытался, кеширование выполняется через атрибут/фильтр, либо на контроллере/действии, либо на запрос, и его можно контролировать с помощью кэширования профиля в файле конфигурации. Кажется, это обеспечивает большую гибкость, а также позволяет очищать основной код сервиса.Почему кеширование ServiceStack в Service, а не FilterAttribute?
Но ServiceStack имеет его внутри службы. Есть ли причина, почему это делается именно так?
Можно ли добавить атрибут CacheFilterAttribute, но делегировать его вместо этого?
ToOptimizedResultUsingCache(base.Cache,cacheKey,()=> {
// Delegate to Request/Service being decorated?
});
Я искал вокруг, но не смог найти ответ. Конечно, это, вероятно, не будет иметь большого значения, потому что кеширование ServiceStack через метод делегирования довольно чистое. И вы редко меняете стратегию кэширования на лету в реальном мире. Так что это в основном из любопытства. Благодарю.
Спасибо. Моя заявка крошечная по любому стандарту, так что это не будет прерывание сделки. Я добавил запрос ServiceRunner/Interceptor. Это, по-видимому, обеспечивает максимальную общую выгоду для структуры. – Whoever