Как передать пользовательский объект в службу WCF
Всем Привет,
Я пытаюсь передать сложный объект службе WCF через клиентское приложение.
Когда я отлаживаю код, я вижу, что объект приходит как null.
Я попробовал следующий код.
Метод интерфейса
[OperationContract] [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "Testmethod/JSON/")] bool TestmethodJson(Complain comp);
реализация сервиса
public bool TestmethodJson(Complain comp) { if (comp != null) { //code goes here return true; } else { //code goes here return false; }
Код клиентского приложения выглядит следующим образом
static void Main(string[] args) { Complain comp = new Complain() { CompainType = "type1", CompainBody = "Body1" }; //JavaScriptSerializer serializer = new JavaScriptSerializer(); string output = JsonConvert.SerializeObject(comp); //string output = serializer.Serialize(complain); string strUri = "http://localhost:35798/NavGAT.svc/Testmethod/JSON/"; Uri uri = new Uri(strUri); WebRequest request = WebRequest.Create(uri); request.Method = "POST"; request.ContentLength = output.Length; request.ContentType = "application/json; charset=utf-8"; // JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); string serOut = JsonConvert.SerializeObject(comp); // string serOut = jsonSerializer.Serialize(complain); using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) { writer.Write(serOut); } WebResponse responce = request.GetResponse(); Stream reader = responce.GetResponseStream(); StreamReader sReader = new StreamReader(reader); string outResult = sReader.ReadToEnd(); sReader.Close(); }
Я могу вызвать службу из клиента, но объект приходит как null.Пожалуйста, дайте мне знать о проблеме при прохождении сложного объекта обслуживания.
заранее спасибо.. :)