WS: definire a runtime attributo [System.Web.Services.WebServiceBindin...

giovedì 12 giugno 2008 - 12.30

jesus_was_rasta Profilo | Newbie

Ciao a tutti.
Breve premessa.
Lavoro in una situazione per cui ci sono clienti e fornitori; io sviluppo lato cliente, altri (che non conosco) lato fornitore.
I miei clienti fanno ordini ai fornitori tramite web services; i fornitori si fanno fare i web services da società di terze parti, ed ognuno sceglie la sua; io lato client implemento i consumer così il mio gestionale può "parlare" con i vari gestionali lato magazzino dei fornitori.

Ora mi capita che 4-5 fornitori abbiano i medesimi web service, però con namepsaces differenti; quei pirla che vendono il software lato fornitore "copia-incollano" i web services, duplicando anche i namespaces, cosicché le clasi proxy generate da .NET non possano funzionare con tutti i WS (cambiando semplicemente a runtime l'URL da invocare), ma solo con quello per cui ho creato, nel progetto, la Web Reference.
Facendo delle prove, l'eccezione che viene sollevata è questa:
# Exception Type: System.Web.Services.Protocols.SoapException
# Message: Valore dell'intestazione HTTP non riconosciuto dal server SOAPAction: http://www.pippo.it//Prodotti/DisponibilitaProdotto.


Guardando il famoso file reference.cs, generato da Visual Studio, trovo su ogni oggetto l'attributo [System.Web.Services.WebServiceBindingAttribute(Name="ProdottiSoap", Namespace="http://www.pippo.it//Prodotti")]
che riporta, giustamente, il namespace dichiarato nel WSDL.

Ora la domanda: è possibile parametrizzare tale attributo e settarlo a runtime, sfruttando al capacità di .NET di crearsi a runtime i Serializers per i WS?
Oppure devo per forza generare n "progetti fotocopia" in cui cambia solo la web reference?!

Grazie.
Nando
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5