Question

Je dois modifier une propriété statique sur un objet de notre application Web. La propriété a une valeur par défaut codée en dur dans l'objet. Si je change la propriété static dans mon Application_Start, cela changera-t-il:

A) Toujours (enfin, jusqu'à ce que l'application soit recyclée)

B) Jusqu'à ce que l'objet soit converti en GC, puis ré-inialisé par le prochain accesseur

C) Dépend

Notez que la propriété que je définirais est juste une chaîne

Était-ce utile?

La solution

La portée d'une variable statique est son AppDomain. Donc, non, les ordures ne seront pas collectées - mais si l'AppDomain est recyclé (ce qui peut arriver assez souvent dans ASP.NET), vous obtiendrez alors un "nouveau". variable statique, effectivement.

Autres conseils

D'après mon expérience avec nos applications Web, la réponse est A. Pour autant que je sache, une classe statique ne sera jamais convertie en GCed, elle dure toute la vie du processus (dans ce cas, le travailleur ASP.NET processus)

Allez pour A) Variable d'instance d'application

Pour le stockage contextuel, reportez-vous à httpContext.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top