Como passar um objeto para HttpClient.PostAsync e serializar como um corpo JSON?

estou a usarSystem.Net.Http, Encontrei vários exemplos na web. Eu consegui criar esse código para fazer umaPOST solicitação:

public static string POST(string resource, string token)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(baseUri);
        client.DefaultRequestHeaders.Add("token", token);

        var content = new FormUrlEncodedContent(new[]
        {
             new KeyValuePair<string, string>("", "")
        });

        var result = client.PostAsync("", content).Result;
        string resultContent = result.Content.ReadAsStringAsync().Result;
        return resultContent;
    }
 }

tudo funcionando bem. Mas suponha que eu queira passar um terceiro parâmetro para oPOST método, um parâmetro chamadodata. O parâmetro de dados é um objeto como este:

object data = new
{
    name = "Foo",
    category = "article"
};

como posso fazer isso sem criar oKeyValuePair? Meu phpRestAPI aguarde uma entrada json, para que oFormUrlEncodedContent deve enviar oraw json corretamente. Mas como posso fazer isso comMicrosoft.Net.Http? Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion