Проблема с методом post службы стек при использовании словаря в ServiceModel - PullRequest
3 голосов
/ 09 ноября 2011

Я разработал один REST-сервис, используя servicestack, и в ServiceModel я создал класс perfmon согласно моим критериям, опубликованным по этой ссылке Динамически выбираем свойство в запросе Linq , я использовал словарь в классе 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); } }

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

, поэтому он уверен, что из-за этого я не смог сделать пост-запрос, потому что при передаче все счетчики с такими же public string counter1 {get; задавать; } тогда это работало хорошо. Что я должен сделать, чтобы разрешить эту ситуацию, если я должен избегать использования словаря ??

спасибо заранее.

1 Ответ

0 голосов
/ 09 ноября 2011

Если это DTO, вам необходимо убедиться, что вы всегда добавляете конструктор без параметров, чтобы десериализатор мог воссоздать ваш класс, например:

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