在ServiceModel中使用字典时出现servicestack post方法问题

时间:2011-11-09 12:55:30

标签: servicestack

我使用servicestack开发了一个REST服务,在ServiceModel中我创建了perfmon类,根据我在此链接上发布的条件Dynamically select property in Linq query,我在perfmon类中使用了字典, 现在Get方法工作得很好,但无法发布帖子请求

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); } }

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

所以可以肯定的是,因为这个我无法发出帖子请求,因为当转移所有计数器时,如公共字符串counter1 {get;组; } 然后它运作良好。 我应该怎么做才能解决这种情况,我应该避免使用字典吗?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果这是一个DTO,那么你需要确保你总是添加一个无参数的构造函数,所以反序列化器可以重新创建你的类,例如:

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