In de december 2002 uitgave van dr. Dobbs, ben ik net op een interessant artikel gebotst getiteld:
ASP.NET Page Persistence & Extended Attributes.
Daarin doet de auteur (David Hovel, ex-'Microsoftee' [member of the WinNT group]) een techniek uit de doeken die hem helpt om op een makkelijke manier z'n aspx pagina's state te laten bewaren. Hij doet dit mbhv attributen en reflection.
Hij maakt een attribuut aan dat dan gebruikt wordt in z'n webpages om aan te geven of de inhoud van een bepaald veld moet bewaard worden of niet.
Dat attribuut ziet er als volgt uit:
Met behulp van die enumerator kan er dus aangegeven worden waar de inhoud moet bewaard worden, in de sessie, applicatie of in de web.config.
In je webpages ga je dus mbhv dit attribuut gaan aangeven welke 'fields' er moeten gepersist worden, en waar ze moeten gepersist worden.
Verder heeft de auteur dan nog een class geschreven die een Save en Restore method bevat. Die methods gaan mbhv reflectie na welke velden er hun state moeten bewaren (welke hebben er dus het PagePersist attribute) en gaat deze dan ook op de juiste plaats gaan bewaren (of op de juiste plaats gaan ophalen).
Nu, dit lijkt me wel een heel handige en makkelijke manier om zo state te gaan bewaren. Ik heb er zelf nog niet met ge-experimenteerd, maar ik ga dat zeker eens doen. Ik wou jullie het concept gewoon niet onthouden en postte dit hier dan maar even (zeer beknopt natuurlijk, wil je meer info, dan moet je maar eens het betreffende artikel opsporen. Het staat misschien ook online [niet nagechecked]).
ASP.NET Page Persistence & Extended Attributes.
Daarin doet de auteur (David Hovel, ex-'Microsoftee' [member of the WinNT group]) een techniek uit de doeken die hem helpt om op een makkelijke manier z'n aspx pagina's state te laten bewaren. Hij doet dit mbhv attributen en reflection.
Hij maakt een attribuut aan dat dan gebruikt wordt in z'n webpages om aan te geven of de inhoud van een bepaald veld moet bewaard worden of niet.
Dat attribuut ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public enum PagePersistEnum { eSession, eApplication, eWebConfig}; [AttributeUsage(AttributeTargets.Fields)] public class PagePersistAttribute : System.Attribute { protected PagePersistEnum ePersist; public PagePersistAttribute(PagePersistEnum ePersist) { this.ePersist = ePersist; } public PagePersistEnum PersistLevel { get { return ePersist; } } } |
Met behulp van die enumerator kan er dus aangegeven worden waar de inhoud moet bewaard worden, in de sessie, applicatie of in de web.config.
In je webpages ga je dus mbhv dit attribuut gaan aangeven welke 'fields' er moeten gepersist worden, en waar ze moeten gepersist worden.
Verder heeft de auteur dan nog een class geschreven die een Save en Restore method bevat. Die methods gaan mbhv reflectie na welke velden er hun state moeten bewaren (welke hebben er dus het PagePersist attribute) en gaat deze dan ook op de juiste plaats gaan bewaren (of op de juiste plaats gaan ophalen).
Nu, dit lijkt me wel een heel handige en makkelijke manier om zo state te gaan bewaren. Ik heb er zelf nog niet met ge-experimenteerd, maar ik ga dat zeker eens doen. Ik wou jullie het concept gewoon niet onthouden en postte dit hier dan maar even (zeer beknopt natuurlijk, wil je meer info, dan moet je maar eens het betreffende artikel opsporen. Het staat misschien ook online [niet nagechecked]).
https://fgheysels.github.io/