2014-12-09 18 views
13

Sto provando a pagamento express paypal ho usato https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl. Quando chiamo usoImpossibile generare una classe temporanea (risultato = 1). Errore CS0030:

PayPalAPIAASoapBinding paypal = new PayPalAPIAASoapBinding(); 

sto errore

Impossibile generare una classe temporanea (risultato = 1) ottenendo. errore CS0030: Impossibile convertire il tipo 'exprtesscheckoutdemo.com.paypal.sandbox.TupleType []' a 'paypal.sandbox.TupleType' CS0029 errore: Impossibile convertire implicitamente tipo 'paypal.sandbox.TupleType' per

come sopra venire questo

risposta

27

appena colpito io stesso durante l'aggiornamento alla versione 119. Nel file del servizio Web generato, fare una ricerca per [][] e sostituire tutte le occorrenze con []. Il cattivo sembra essere il merchantDataField nel PaymentDetailsType.

It seems to be a bug in the Microsoft WSDL tools quando si interagisce con servizi che hanno "nodi annidati con l'attributo maxOccurs impostato su non limitato"; L'ho incontrato prima quando interagivo con le API SOAP di FedEx.

+0

Ho colpito anche questo problema. La tua correzione ha risolto il problema. Grazie molto! Sarei curioso di scoprire la soluzione per vb.net. Ho implementato la tua correzione nel contesto di una libreria di classi C#, che ho poi compilato e poi aggiunto al mio progetto VB. – brando

+0

Anche grazie. Questa è la seconda correzione che dovevo fare nel file Reference.cs generato da PayPal. L'altro aveva a che fare con una trappola deserializzata - Namespace 'cc' e 'ebl' non definiti. Vedi http://stackoverflow.com/questions/10172197/paypal-setexpresscheckout-soap e http://stackoverflow.com/questions/12106242/paypal-soap-api-reponses-require-manual-parsing. – GarDavis

+0

grazie, ha funzionato! anche oggi ancora di fronte a questo :) – skorzinetzki