Acabo de chocar contra una enorme pared de ladrillos con Paypal. Había creado un proyecto C # normal para crear algunas clases contenedoras usando su WSDL.
Si crea un proyecto que no es web, la única opción que tiene para agregar un wsdl es una referencia de servicio web. Y esto crea el mismo conjunto de clases de proxy que una referencia web, pero en realidad no ... agrega más de lo que ni siquiera los chicos de PayPal son conscientes.
Así que todo este tiempo estuve buscando la Interfaz correcta en esta lista de clases de proxy para usar como servicio (SoapBinding) y PayPalAPIAASoapBinding
no estaba allí, le dije a nuestro punto de contacto de PayPal.
Solo pude ver las siguientes 2 interfaces que me parecieron lo que necesitaba usar, ya que no vi una PayPalAPIAASoapBinding
que PUEDA ver en una referencia de servicio basada en Web Reference:
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
Así que me di cuenta de que probablemente había creado una referencia de servicio frente a una referencia web, que es una opción en un proyecto web. Pero no quiero que mi referencia de servicio esté estrechamente relacionada con mi proyecto web. Por eso creé el Proyecto C #.
Entonces, ¿qué diablos es una referencia de servicio frente a una referencia web? ¿Y cómo se supone que voy a separar esto en otro proyecto si Service Reference me va a lanzar un bucle y me dará un conjunto de interfaces diferentes a las de una Web Reference?
Además, para hacer las cosas aún MÁS confusas, VS 2008 tiene un proyecto de Aplicación de Servicio Web.
Entonces, ¿qué uso? Estamos utilizando el marco .NET 3.5 y estamos no listo para pasar a WCF . Entonces, ¿puedo seguir usando la nueva referencia de servicio incluso si no uso WCF o qué? SI está usando .NET 3.5 y aún no WCF y aún desea hacer servicios web básicos, ¿sigue la ruta de referencia de servicio y simplemente no usa el marco WCF? Lo que significa que aún se puede usar como una referencia web .NET 2.0, solo que obtendrá una generación completamente diferente del WSDL.