none
Como pasar como parametro un objeto atravez de un WCF RestFull RRS feed

  • Debate general

  • Hola mi pregunta es como pasar por parametro un objeto en un WCF rest por el momento tengo esto 

    [OperationContract]
            [WebInvoke(Method = "GET",
                        ResponseFormat = WebMessageFormat.Json,
                        BodyStyle = WebMessageBodyStyle.Wrapped,
                        UriTemplate = "complex/{id}")]
            TestBE ComplexObject(string id);

    este metodo me devuelve un objeto tipo TestBE pero lo quiero hacer es pasar por parametro tambien un objeto pero no se como manejar el UriTemplate quiero realizar algo asi 

    [OperationContract]
            [WebInvoke(Method = "GET",
                        ResponseFormat = WebMessageFormat.Json,
                        BodyStyle = WebMessageBodyStyle.Wrapped,
                        UriTemplate = "complex/{id}")]
            TestBE ComplexObject(PersonBE id);

    Gracias por su atención 


    WAQ

    viernes, 2 de noviembre de 2012 21:19

Todas las respuestas

  • Lo q realice fue lo siguiente y me funciono observen 

    el metodo en el servicio

     [OperationContract]
            [WebInvoke(Method = "POST",
                        ResponseFormat = WebMessageFormat.Json,
                        RequestFormat = WebMessageFormat.Json,

                        UriTemplate = "saveDataPost")]
            TestBE saveDataPost(TestBE param1);

    La forma en que lo llame fue asi  con un JSON le pase los parametros 

      var resolution = { Id: 1, Name: "Vagner", Active: true};
                    //var objectAsJson = $.toJSON(resolution);

                    var param1 = JSON.stringify(resolution, null, 2);

                    $.ajax({
                        type: "POST",
                        contentType: "application/json",
                        url: "RestServiceImpl.svc/saveDataPost",
                        data: param1,
                        success: function (result) {
                            alert(result.Active.toString());
                            alert("ok");
                        },
                        error: function (err) {
                            alert("fail");
                        }


    WAQ

    miércoles, 7 de noviembre de 2012 18:40
  • Hola.. muy buen aporte me ah servido de mucho, pero tengo una duda, como sabe el servicio o de que manera interpreta que datos va a recibir, eh intentado invocarlo y al parecer el servicio no sabe que va recibir o en donde lo almacenara para después pasárselo a la variable TestBE param1, si podrias explicarme esa parte si hay que declarar antes algunas variables para los datos del cuerpo de JSON o que onda.. Gracias
    viernes, 26 de julio de 2013 14:52
  • [OperationContract]
            [WebInvoke(Method = "GET",
                        ResponseFormat = WebMessageFormat.Json,
                        BodyStyle = WebMessageBodyStyle.Wrapped,
                        UriTemplate = "complex/{id}")]
            TestBE ComplexObject(PersonBE id);

    1 - Envías el objeto con formato en json.

    2 - Para recibirlo en el wcf sera un string .json deberas deserealizarlo a Objeto correspondiente

    sábado, 6 de mayo de 2017 16:03
  • [OperationContract]
            [WebInvoke(Method = "GET",
                        ResponseFormat = WebMessageFormat.Json,
                        BodyStyle = WebMessageBodyStyle.Wrapped,
                        UriTemplate = "complex/{id}")]
            TestBE ComplexObject(PersonBE id);

    1 - Envías el objeto con formato en json.

    2 - Para recibirlo en el wcf sera un string .json deberas deserealizarlo a Objeto correspondiente

    Recibo un error cuando el metodo del servicio esta configurado de esa forma

    La operación 'ControlLineaCreditoTesoreriaRq' del contrato 'IPrimeraApi' utiliza GET, pero también tiene los parámetros del cuerpo 'controlLineaTesoreriaRq'. Las operaciones GET no pueden tener cuerpo. Convierta el parámetro 'controlLineaTesoreriaRq' en un parámetro UriTemplate, o bien pase de WebGetAttribute a WebInvokeAttribute.
    viernes, 30 de noviembre de 2018 20:13