protected override object SubImport(JsonReader reader)
 {
     if (reader == null)
         throw new ArgumentNullException("reader");
     
     return reader.DeserializeNext();
 }
        public object Import(JsonReader reader)
        {
            if (reader == null)
                throw new ArgumentNullException("reader");

            if (!reader.MoveToContent())
                throw new JsonSerializationException("Unexpected EOF.");

            if (reader.TokenClass == JsonTokenClass.Null)
                return null;
            
            return reader.DeserializeNext();
        }
        public virtual void Invoke(JsonReader requestReader, JsonWriter responseWriter)
        {
            if (requestReader == null)
                throw new ArgumentNullException("requestReader");

            if (responseWriter == null)
                throw new ArgumentNullException("responseWriter");

            responseWriter.WriteValue(Invoke((IDictionary) requestReader.DeserializeNext()));
        }