2011-11-09 31 views
3

我已經使用servicestack開發了一個REST服務,並在ServiceModel中創建了perfmon類,根據我在此鏈接上發佈的標準Dynamically select property in Linq query,我已經在perfmon類中使用了字典, Now獲取方法很好地工作,但可能無法進行POST請求在ServiceModel中使用字典時使用servicestack post方法問題

public class Perfmon 
    { 

     public long id { get; set; } 

     private readonly Dictionary<string, string> _counters = new Dictionary<string, string>(); 

     public Perfmon(params KeyValuePair<string, string>[] knownCounters) 
     { 
      foreach (var knownCounter in knownCounters) 
      { 
       SetCounter(knownCounter.Key, knownCounter.Value); 
      } 
     } 
     public void SetCounter(string name, string value) 
     { 
      _counters[name] = value; 
     } 

     protected string GetCounterValue(string name) 
     { 
      if (_counters.ContainsKey(name)) 
       return _counters[name]; 
      else 
       return null; 
     } 

     public string counter1{ get { return GetCounterValue("counter1"); } set { SetCounter("counter1", value); } } 

    ..... 
    ..... 
    ..... 
    } 

,所以肯定是因爲這個我不能讓post請求,因爲當傳輸與像公共字符串C1的所有計數器{得到;組; }然後它運行良好。 我該怎麼做才能解決這種情況,我應該避免使用字典?

在此先感謝。

+0

BTW,你不應該地址Q對具體的人,即rem mythz ref :)這是什麼類?這是否意味着要成爲一個DTO?因爲DTO不應該包含只有行爲的數據。 – mythz

回答

0

如果這是一個DTO,那麼你需要確保你總是添加一個參數的構造函數,所以解串器可以重新創建你的類如:

public class Perfmon 
{ 
    public Perfmon() {} 
    .... 
} 
+0

你是對的,我已經刪除該字典機制,它的工作! –