3

私は servicestack を使用して 1 つの REST サービスを開発し、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; 設定; その後、うまくいきました。この状況を解決するにはどうすればよいですか、辞書の使用を避けるべきですか??

前もって感謝します。

4

1 に答える 1

0

これが DTO の場合、デシリアライザーがクラスを再作成できるように、常にパラメーターなしのコンストラクターを追加する必要があります。

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