Hallo. Ik heb als "handige buurjongen" voor iemand een programmaatje gemaakt dat via een bestaande webservice informatie ophaalt en er dingen mee doet. Over die webservice hebben we geen controle, we zijn slechts afnemer. Ik zal direct bekennen niet precies te weten wat er "under the hood" allemaal gebeurt (vast één groot feest van SOAP en XML), maar het werd me allemaal erg makkelijk gemaakt door de .NET tools: de webservice gaf me een WSDL, ik kon daarvan met "svcutil" een soort proxy-code mee produceren, en die code deed het in mijn project vrijwel direct.
Nu is de webservice een beetje veranderd. Volgens mij zijn er maar twee velden toegevoegd aan een object. Helaas hield mijn programma hierdoor er mee op te werken: die nieuwe objecten werden volledig "null" ingevuld. Even opnieuw de proxy-code generen met de nieuwe WSDL loste het probleem direct op.
Hoe dan ook: is het mogelijk ergens in te stellen nieuwe/onbekende velden gewoonweg te negeren? Als ik zelf handmatig het service-praat-werk zou doen, zou ik gewoon de onbekende XML-elementen negeren. Kan ik de .NET-machinerie vertellen hetzelfde te doen? Het zou prettig zijn dat ik als afnemer niet iedere keer moet updaten als de service slechts iets toevoegt dat ik simpelweg kan negeren. En ik kan me voorstellen dat ik niet de eerste ben met dit probleem. Op het net kon ik niet zo snel iets vinden (of geen pakkende zoekterm bedenken).
Bij voorbaat dank!
PS. Ik gebruik de "System.ServiceModel.*" klassen, ik geloof niet dat er veel andere keuze is, maar voor de volledigheid...
Nu is de webservice een beetje veranderd. Volgens mij zijn er maar twee velden toegevoegd aan een object. Helaas hield mijn programma hierdoor er mee op te werken: die nieuwe objecten werden volledig "null" ingevuld. Even opnieuw de proxy-code generen met de nieuwe WSDL loste het probleem direct op.
Hoe dan ook: is het mogelijk ergens in te stellen nieuwe/onbekende velden gewoonweg te negeren? Als ik zelf handmatig het service-praat-werk zou doen, zou ik gewoon de onbekende XML-elementen negeren. Kan ik de .NET-machinerie vertellen hetzelfde te doen? Het zou prettig zijn dat ik als afnemer niet iedere keer moet updaten als de service slechts iets toevoegt dat ik simpelweg kan negeren. En ik kan me voorstellen dat ik niet de eerste ben met dit probleem. Op het net kon ik niet zo snel iets vinden (of geen pakkende zoekterm bedenken).
Bij voorbaat dank!
PS. Ik gebruik de "System.ServiceModel.*" klassen, ik geloof niet dat er veel andere keuze is, maar voor de volledigheid...