[C#] Class library vraagt gegevens op bij applicatie

Pagina: 1
Acties:

  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 15-03 08:21
Een webapplicatie maakt gebruik van een class library (de zgn. Security Layer), als een generieke laag die functies als ChangePassword, ChangeEmail, etc biedt aan de webapp.

En andere functie binnen die class library vergelijkt de datum van het accepteren van de gebruikersvoorwaarden met die van de actuele gebruikersvoorwaarden. Indien de acceptatiedatum vóór de ingangsdatum ligt van de actuele gebruikersvoorwaarden, dienen de actuele gebruikersvoorwaarden nog geaccepteerd te worden door de gebruiker.

Nu is het de bedoeling dat die class library de actuele gebruikersvoorwaarden ophaalt bij de webapplicatie die gebruik maakt van die class library. Echter, er mag geen reference vanuit de class library naar de webapplicatie gelegd worden, omdat die class library generiek is en geen afhankelijkheid mag kennen naar de webapplicatie. Andersom is dat natuurlijk wel het geval, dwz binnen de webapplicatie is een reference opgenomen naar de class library.

Er moet dus een generieke GetTermsAndConditions functie bestaan binnen de class library, echter deze functie moet uitgevoerd worden door de webapplicatie. Het resultaat wordt terug gegeven aan de class library.

Helaas kan het hele accepteren van die gebruikersvoorwaarden door omstandigheden niet door de webapplicatie gedaan worden. De gebruikersvoorwaarden zijn echter wel en alleen bekend binnen de webapplicatie.

Hoe kan ik een functie binnen een class library definieren, waarvan de uitvoer bij de applicatie ligt?

Ik heb al wat liggen stoeien met delegates, maar kom er nog niet uit.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Maak een interface ITermsAndConditions en implementeer die met je caller.
Vervolgens kun je het specifieke type van dat ding in je web.config oid kwijt.
Kijk maar bijv. op MSDN hoe je IMembershipProvider uit het framework kunt herimplementeren en aanroepen.

Als alternatief kun je de constructor van de callee uitbreiden met een parameter van het type ITermsAndCondition, en daar de caller passen, als je het liever compile time bepaalt ipv runtime.

[ Voor 27% gewijzigd door Grijze Vos op 17-09-2009 15:08 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info