Acabei de bater em uma enorme parede de tijolos com o Paypal. Eu criei um projeto C # regular para criar algumas classes de wrapper usando seu WSDL.
Se você criar um projeto não-web, a única opção que terá para adicionar um wsdl é uma referência de serviço web. E isso cria o mesmo conjunto de classes de proxy que uma referência da Web faria, mas não realmente ... adiciona mais coisas que nem mesmo os caras do PayPal estão cientes.
Fiquei o tempo todo procurando a Interface certa nessa lista de classes de proxy para usar como serviço (SoapBinding) e PayPalAPIAASoapBinding
não estava lá, ficava contando ao nosso ponto de contato do PayPal.
Só consegui ver as 2 interfaces a seguir que me pareceram o que eu precisava usar, pois não vi uma PayPalAPIAASoapBinding
que PODE ver em uma referência de serviço baseada na Web:
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
Então eu descobri, oh, provavelmente eu criei uma Referência de serviço versus uma referência da Web, cuja referência da Web é uma opção em um projeto da Web. Mas eu não quero minha referência de serviço fortemente associada ao meu projeto da web. É por isso que criei o Projeto C #.
Então, o que diabos é uma referência de serviço vs. referência da Web? E como vou separar isso em outro projeto se a Referência de Serviço vai me lançar um loop e me dar um conjunto de interfaces diferentes do que uma Referência da Web faria?
Além disso, para tornar as coisas ainda MAIS confusas, o VS 2008 tem um projeto de Aplicativo de Serviço da Web.
Então, o que devo usar? Estamos usando o framework .NET 3.5 e estamos não pronto para passar para WCF . Portanto, ainda posso usar a nova referência de serviço, mesmo se não estiver usando o WCF ou o quê? SE você estiver usando o .NET 3.5 e ainda não o WCF e ainda quiser fazer serviços da Web básicos, ainda vai pela rota de referência de serviço e simplesmente não usa a estrutura do WCF? O que significa que ainda pode ser usado como um .NET 2.0 Web Reference, só que você terá uma geração totalmente diferente do WSDL?