monoでASP.NET APIがMissing Methodを吐く

· Read in about 1 min · (142 words) ·

単純に言っちゃうとHttpRequestBaseにGetBufferedInputStreamがない。 Mono 4.3.x系を入れると問題が解決するようだがMono 4.2.xでどうやって対応するか。 今回はPostハンドラをクイックハックした。

#if MONO
        public string Post()
        {
            var buffer = HttpContext.Current.Request.BinaryRead(HttpContext.Current.Request.ContentLength);
            var jsonStr = System.Text.Encoding.ASCII.GetString(buffer);

            T parsed = JsonConvert.DeserializeObject<T>(jsonStr);
#else
        public string Post([FromBody]T parsed)
        {
#endif