Avatar billede Lasse Novice
16. juni 2005 - 22:49 Der er 9 kommentarer og
1 løsning

PropertyInfo.GetCustomAttributes er meget langsom

Jeg har lavet et program der laeser nogle attributter. Det viser sig dog at kaldet PropertyInfo.GetCustomAttributes(...) tager laaaaang tid i forhold til resten af programmet. Er der nogen anden maade paa at faa attributterne ud paa?
Avatar billede arne_v Ekspert
16. juni 2005 - 22:59 #1
Den bruger reflection.

Reflection er ikke super hurtigt.

Dog ofte hurtigt nok.

Hvis det er for langsomt for dig skal du nok redesigne din logik lidt.

Hvis du beskriver problem stillingen kan vi måske komme med nogle gode ideer.
Avatar billede Lasse Novice
23. juni 2005 - 16:28 #2
Jeg har en klasse hvori hver property kan gettes/settes. Klassen har en save funktion, og denne kigger paa hver property efter en attribute. Denne attribute fortaeller save metoden at denne property skal "saves" HVIS default vaerdien der er gemt i attributten er forskellig for den vaerdi propertien har nu. Ydermere gemmer propertien nogle flere vaerdier.

For at goere det saa simpelt som muligt er det vist kun attributes der kan bruges her.
Avatar billede arne_v Ekspert
23. juni 2005 - 16:32 #3
nøjes med at lav reflection en gang

singleton med Hashtable med klassenavn -> Hashtable med property -> save or not

SaveInfoCache.Instance.SaveInfo[classname][propname] vil så give true eller false
Avatar billede Lasse Novice
23. juni 2005 - 23:00 #4
Det goer jeg desvaerre allerede - kun en gang reflection.
Avatar billede arne_v Ekspert
23. juni 2005 - 23:02 #5
hvordan kan det så påvirke den samlede app ? har du mange klasser ?
Avatar billede Lasse Novice
24. juni 2005 - 01:01 #6
jeg har en del/mange klasser, men hver klasse har maaaange properties. For hver properties skal jeg kalde GetCustomAttributes
Avatar billede Lasse Novice
07. september 2005 - 23:00 #7
arne_v >> cache virker.

svar => point
Avatar billede arne_v Ekspert
08. september 2005 - 07:49 #8
ok
Avatar billede stoffer Nybegynder
12. september 2006 - 16:52 #9
Hej jeg sad i samme problem og har også søgt lidt. Fand denne glimrende måde at cache på:

http://www.codeproject.com/useritems/BusinessObjectHelper.asp
Avatar billede stoffer Nybegynder
12. september 2006 - 16:53 #10
ups.. så ikke det var fra 2005 ;O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester