Dostaje następujące dane gdy odczytam je poprzez Stream a następnie je zdekoduje przy pomocy HttpUtility.UrlDecode.

event=Rally On&data={"hits":14,"total":40}

Moja metoda w WCF wygląda następująco:

public void GetData(Stream data)
        {
            var reader = new StreamReader(data);
            string rallyCharityData = reader.ReadToEnd();

            reader.Close();
            reader.Dispose();

            var decodeData = HttpUtility.UrlDecode(rallyCharityData);

            InvokeCallback(decodeData);
        }

Co zrobić aby zamiast parametru Stream pojawił się obiekt w C# ?

Próbowałem to zrobić następująco:

 public string GetData(string Event, RallyCharityDataContract data)
[DataContract]
    public class RallyCharityDataContract
    {
        [DataMember]
        public RallyData Data { get; set; }

    }
    public class RallyData
    {
        public int Hits { get; set; }

        public int Total { get; set; }
    }

Ale wtedy wysłanie HTTP POST nie skutkuje uruchomieniem metody GetData. GetData zostaje wywołane tylko w sytuacji gdy wygląda w taki sposób:

public void GetData(Stream data)