2013-10-17 113 views
1

到Redis的我只是幾個小時的老Redis的ServiceStack.Redis,並試圖瞭解它。 以前我曾經使用過ASP.NET緩存,我需要將DataSet存儲到緩存中並進行檢索。存儲和檢索System.Data.DataSet中與ServiceStack

我試圖完成同樣與ServiceStack.Redis但它提高例外:

An unhandled exception of type 'System.StackOverflowException' occurred in ServiceStack.Text.dll 

這裏是代碼

static void Main(string[] args) 
    { 
     var redisClient = new RedisClient("localhost"); 

     DataSet ds = new DataSet(); 
     ds.Tables.Add("table1"); 
     ds.Tables[0].Columns.Add("col1", typeof(string)); 
     DataRow rw = ds.Tables[0].NewRow(); 
     rw[0] = "samtech"; 
     ds.Tables[0].Rows.Add(rw); 

     //following line raises exception 
     redisClient.Set<System.Data.DataSet>("my_ds", ds, DateTime.Now.AddSeconds(60)); 
    } 

誰能告訴我什麼,我做錯了什麼?
我可以只將自定義類存儲到Redis而不是DataSet嗎?

回答

1

DataSet是極其糟糕的序列化候選對象,因此任何ServiceStack庫都不支持,只能使用乾淨的POCO模型。