3

我已经使用 servicestack 开发了一个 REST 服务,并且在 ServiceModel 中我创建了 perfmon 类,根据我在此链接上发布的标准动态选择 Linq 查询中的属性,我在 perfmon 类中使用了字典,现在 Get 方法工作得很好但不能发出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); } }

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

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

提前致谢。

4

1 回答 1

0

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

public class Perfmon
{
    public Perfmon() {}
    ....
}
于 2011-11-09T17:12:42.983 回答