Да, но ваш POST должен быть передан с использованием общего понимания данных, также называемого «контрактом данных».
В WCF типичный подход здесь состоит в том, что вы создаете класс контракта (просто пример с моей головы, а не на 100% работающий))
[DataContract(Namespace="http://yournamespace.com")]
public class MyContract
{
[DataMember(Order=1)]
public string MyData1 { get(); set{};}
[DataMember(order=2)]
public string MyData2 { get(); set{};}
}
Затем вы должны указать свою операцию WCF, чтобы принять этот тип контракта в качестве параметра
[WebInvoke(method="POST")]
public string DoSomethingFromPost(MyContract postedData)
{
}
На вашем клиенте вы бы сериализовали данные в формат xml / json, соответствующий вашему контракту. Опять свободный пример:
<MyContract xmlns="http://yournamespace.com">
<MyData1>value</MyData1>
<MyData2>value</MyData2>
</MyContract>
Когда контракт совпадает, WCF десериализует ваш POST в объект контракта, после чего вы можете использовать его как любой другой класс.