Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[.NET] Interface voor implementatie webservice op server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik wil dat een client-webservice aan een bepaalde interface voldoet, zodat een andere service deze client-webservice kan aanroepen. Wat ik hierbij even niet voor elkaar krijg echter, is dat ik de interface niet op een handige manier klaar kan zetten, zodat wanneer deze uitgebreid wordt, de clients deze weer kunnen updaten (dit hoeft uiteraard niet 'live'). Hoe kan ik dit het beste doen?

Ik zat zelf te denken in de richting van een interface definieren in de host, en dan met een webreference op de client webservice deze laten uitlezen. Of een wsdl zien aan te maken die met het tooltje wsdl.exe omgezet kan worden naar een interface en/of class implementaties.
De andere kant uit is makkelijk, en dit doe ik met grote regelmaat, maar de kant die ik momenteel uit wil heb ik eigenlijk nog nooit echt over na gedacht... :)


Om even een hypotetisch voorbeeld te geven (deze ben ik niet aan het maken, maar geeft misschien een beter beeld van wat ik probeer voor elkaar te krijgen).
Er is een systeem dat weerberichten over de hele wereld analyseert. Deze leest van webservices over de hele wereld de huidige temperatuur, en gebruikt deze voor zijn eigen doeleinden. Nu voldoen al deze client-webservices aan de zelfde structuur (bijvoorbeel de methode "double GetTemp()" ). En deze worden beschikbaar gesteld door de hoofd systeem op een of andere manier, zodat hij alle services kan aanspreken.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Middels WFC (Indigo) is dat een eitje. Code voor de client:
C#:
1
2
3
4
5
BasicHttpBinding binding = new BasicHttpBinding();
EndPointAddress epa = new (EndPointAddress(new Uri("http://localhost/weather/service.asmx"));

ITemp proxy = ChannelFactory<ITemp>.CreateChannel(binding, epa);
double temp = proxy.GetTemp();

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Dat is duidelijk, maar dat is het aanroepen door de server. Daar had ik om eerlijk te zijn al een aardig idee over. Maar hoe weet die "http://localhost/weather/service.asmx" nu aan welke interface hij moet voldoen?

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op donderdag 01 november 2007 @ 12:01:
Dat is duidelijk, maar dat is het aanroepen door de server. Daar had ik om eerlijk te zijn al een aardig idee over. Maar hoe weet die "http://localhost/weather/service.asmx" nu aan welke interface hij moet voldoen?
Dat weet hij niet, want dat is niet belangrijk. De ge-exporteerde interface (i.e. de public service methods) die zijn automatisch beschikbaar op de client wanneer je puur webservices ZONDER wcf gebruikt.

gebruik je WCF, dan kun je een service contract gebruiken, door een interface middels attributes te definieren als de service interface, en die interface implementeer je dan in je service class en gebruik je in je client.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com