Как извлечь содержимое из HttpResponseMessage из POST при использовании WEB API?

Довольно типичная операция CRUD приводит к тому, что объект, у которого установлен Id, после его сохранения.

Поэтому, если у меня есть метод Post на контроллере, который принимает объект (скажем, JSON-сериализованный) и возвращает HttpResponseMessage с HttpStatusCode Created и Content, установленным в тот же объект с Id, обновленным с нуля до целого числа, как тогда я могу использовать HttpClient для при этом значении идентификатора?

Это'Вероятно, это довольно просто, но я вижу только System.Net.Http.StreamContent. Лучше просто вернуть Int из метода post?

Благодарю.

Обновление (следующий ответ):

Рабочий пример ...

namespace TryWebAPI.Models {
    public class YouAreJoking {
        public int? Id { get; set; }
        public string ReallyRequiresFourPointFive { get; set; }
    }
}

namespace TryWebAPI.Controllers {
    public class RyeController : ApiController {
        public HttpResponseMessage Post([FromBody] YouAreJoking value) {
            //Patience simulated
            value.Id = 42;

            return new HttpResponseMessage(HttpStatusCode.Created) {
                Content = new ObjectContent(value,
                            new JsonMediaTypeFormatter(),
                            new MediaTypeWithQualityHeaderValue("application/json"))
            };
        }
    }
}

namespace TryWebApiClient {
    internal class Program {
        private static void Main(string[] args) {
            var result = CreateHumour();
            Console.WriteLine(result.Id);
            Console.ReadLine();
        }

        private static YouAreJoking CreateHumour() {
            var client = new HttpClient();
            var pennyDropsFinally = new YouAreJoking { ReallyRequiresFourPointFive = "yes", Id = null };

            YouAreJoking iGetItNow = null;
            var result = client
                .PostAsJsonAsync("http://localhost:1326/api/rye", pennyDropsFinally)
                .ContinueWith(x => {
                                var response = x.Result;
                                var getResponseTask = response
                                    .Content
                                    .ReadAsAsync()
                                    .ContinueWith(t => {
                                        iGetItNow = t.Result;
                                        return iGetItNow;
                                    }
                );

                Task.WaitAll(getResponseTask);
                return x.Result;
            });

            Task.WaitAll(result);
            return iGetItNow;
        }
    }
}

Кажется, Node.js вдохновлен.

Ответы на вопрос(1)

Ваш ответ на вопрос