none
¿Error en Referencia..ES diferente una Servicio de REferencia en Form.. yen Web?? RRS feed

  • Pregunta

  • Buenos dias, una consulta, tengo un proyecto el cual tiene una referencia hecha primer en para FOrms que es la capa "Presentacion" como se muestra en la imagen, y alli agrege una Servicio de Referencia.

    Lo mismo realize para la Capa Web, Agrege una Servicio de Referencia, pero aca no reconoce las Entidades.

    Osea en Forms, Si reconoce todas las entidades a la cual el Servicio de Referencia funciona. Pero en Web no reconoce las Entidades :S, esto se debe a algo en especifico ?

    Realmente no entiendo, porque sucede esto :S Saludos

    martes, 9 de abril de 2013 13:23

Todas las respuestas

  • Seguramente es un problema de espacio de nombres. Abre el .designer.cs de la Referencia, y examina los namespaces que ha generado. Después, en tu código, escribe explícitamente los espacios de nombres de las entidades, en lugar de confiar en que coincidan con los predeterminados (que son diferentes en web y en aplicaciones de escritorio).

    martes, 9 de abril de 2013 19:19
  • Talvez en WEb te refieras al REferences.cs... YA que en la referencia que esta en el Formulario no existe el References.cs.. ni otra propiedad.. ACa te mando la captura.. de lo que abre , reviso el codigo  y esta realmente bien hecho :S  nose talvez puedas ver algun problema alli :s..GRacias

    martes, 9 de abril de 2013 19:28
  • En ese References.cs se ve que sí que te ha generado las entidades. Por ejemplo, fíjate en la llamada a ManifiestoDetalle_Selecciona, que devuelve un objeto de tipo PegasusERP.Presentation.PegaususERPServicio.MS3_ManifiestoDetalleBE. Ese es el nombre completo de la entidad que te ha generado al añadir el proxy del servicio. Si la escribes de esa misma manera dentro de tu código, el compilador te la debe admitir.

    miércoles, 10 de abril de 2013 6:42
  • Claro, Alberto en eso tienes mucha razon si escribo :  PegasusERP.Presentation.PegaususERPServicio.MS3_ManifiestoDetalleBE , queriendo llamar a La entidad de Manifiesto Detalle...

    Pero El problema es que esa llamada esta pasando por "Presentation", que es la capa de Windows Forms.

    El servicio que te muestro en imagen esta en La parte Web. Osea, si tengo mi servicio en la parte web. Yo necesito solo trabajar con lo que este en web.

    Porque cuando suba a el hosting, la aplicacion web, no estara presente toda la capa de Windows Form.  Nose si me entendiste :S ..U_U..

    Lo Ideal seria que YO DESDE WEB PUEDA LLAMARLO A LAS ENTIDADES ASI :  PEgasusERPServicio.MSJ_ManifiestoDEtalleBE... Y asi sucesivamente todas las entidades..pero Estamos serca de encontrar la solucion me parece .

    Supongo que he de hacer alguna modificacion manual al References.cs.. pero nose exactamente como para que la llamada en web a entidades se haga como lo mencione :S ..

    miércoles, 10 de abril de 2013 15:31
  • Creo que no has entendido lo que hace el proxy que se crea cuando añades la referencia web. Lo que hace este proceso es que escribe en el lado cliente una clase que tiene los mismos datos que la clase que tienes en el lado servidor, repitiendo el proceso por cada argumento que envías o recibes en los servicios web. Cuando envías al cliente una entidad que está en el servidor como resultado de un método del servicio web, lo que ocurre es que la clase que está en el servidor se serializa, se envía por la línea de comunicación, y se deserializa en el cliente metiéndola dentro de la clase "simulada" que se creó con la Referencia Web. El cliente no puede ver nunca la entidad que está en el servidor, lo que ve es la "copia" que se ha creado en la máquina cliente. Esa copia es una clase distinta (aunque dentro contenga los mismos datos), y por eso la ves con otro espacio de nombres. Incluso aunque modificases el código autogenerado y le pusieras el mismo espacio de nombres que hay en el servidor, la clase seguiría siendo otra, que se serializa y deserializa para copiar entre el servidor y el cliente.

    miércoles, 10 de abril de 2013 18:53
  • Hmm.. Pero entonces que solucion le podria dar a mi problema. Porque necesito SUbir al hosting ya la pagina.. pero.. Mientras tenga que usar dentro de mi codigo el pasar x la capa "Presentacion"..que no esta en WEB..S..Para poder Acceder a las Entidades.., no podria subirlo a el host.. :S ya que hecharia error..
    miércoles, 10 de abril de 2013 18:57
  • No, es al revés. En el hosting se sube la capa de datos con las entidades "originales", y el webservice que se las expone a la capa de presentación. En la capa de presentación se crea el proxy del servicio web. el cual va a contener las entidades "ficticias", que son una copia de las "auténticas" que creaste en el lado del servicio. Esas entidades ficticias usadas en la capa de presentación no se suben al hosting.

    miércoles, 10 de abril de 2013 20:47