ServiceStack по умолчанию не выполняет кэширование запросов, вы должны включить кэширование, используя одну из стратегий кэширования.
Не следует использовать ToOptimizedResult()
в сервисах, которые вы хотите вызватьнепосредственно, для кэшированных запросов он возвращает сериализованный сжатый byte[]
результат, который недоступен как DTO Typed Response из C # API.
Для кэширования Сервисов, которые вы хотите вызывать через C #, вы можете использовать Атрибут CacheResponse вместо.
Вызов других служб
Примечание. Рекомендуемый способ вызова других служб - использование шлюза услуг , например:
var result = Gateway.Send(new RequestDto());
Если вы хотите напрямую вызывать метод C # для Службы, вам следует использовать ResolveService
для разрешения службы с автоматической связью и вызова метода в операторе using, например:
using (var service = base.ResolveService<MyService>())
{
var result = service.Any(new RequestDto());
}