2014-10-23 1 views
0

Я построил простой сервис Hello, который использует кеш. DTO:Сервис, возвращающий строку, только добавил котировки при выходе из кеша

[DataContract] 
[Route("/cachedhello/{Name}")] 
public class CachedHello : IReturn<string> 
{ 
    [DataMember] 
    public string Name { get; set; } 

    public string CacheKey 
    { get { return "urn:cachedhello:nm=" + Name; } } 
} 

Вот служба:

public class CachedHelloService : Service 
    { 
     public ICacheClient CacheClient { get; set; } 

     public object Any(CachedHello request) 
     { 
      return base.Request.ToOptimizedResultUsingCache(
       this.CacheClient, request.CacheKey, CacheExpiryTime.DailyLoad(),() => 
       { 
        return "(Cached) Hello, " + request.Name; 
       }); 
     } 
    } 

Когда я использую JSONServiceClient назвать эту услугу, возвращаемая строка имеет кавычки вокруг него. когда я смотрю на записи кэша в моей базе данных, он будет выглядеть как дополнительный набор цитат были помещены вокруг версии .json вступления:

urn:cachedhello:nm=Matt     (Cached) Hello, Matt 
urn:cachedhello:nm=Matt.json    """(Cached) Hello, Matt""" 
urn:cachedhello:nm=Matt.json.deflate  U9JwTkzOSE3RVPBIzcnJ11HwTSwpUQIA 

Вот код, который вызывает службу из VB.NET

Dim s = _ServiceClient.Send(Of String)(New CachedHello() With {.Name = "Matt"}) 

ответ

1

Мы удалили двойное кодирование исходных строк ответов in this commit. Теперь эта проблема должна быть решена в последнем v4.0.33 + ServiceStack, который теперь находится available on MyGet.

Смежные вопросы