我使用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;组; } 然后它运作良好。 我应该怎么做才能解决这种情况,我应该避免使用字典吗?
提前谢谢。答案 0 :(得分:0)
如果这是一个DTO,那么你需要确保你总是添加一个无参数的构造函数,所以反序列化器可以重新创建你的类,例如:
public class Perfmon
{
public Perfmon() {}
....
}