2008-11-28 12 views

Répondre

5

Regardez ces questions:

Getting the size of a field in bytes with C#
Find out the size of a .net object

En particulier, chercher la réponse de Jon Skeet dans ces questions. Ils vous diront pourquoi le nombre ne sera pas exact. En ce qui concerne l'obtention d'une estimation, il n'y a aucun moyen de le faire, à moins que certains critères ne soient remplis pour votre objet. Par exemple, si vous avez plusieurs objets dans le cache, partageant des références à des instances d'objet communes, la sérialisation d'un de ces objets dans le cache sérialisera également une copie de ces objets communs, ce qui gonfle les résultats.

+0

Merci - il semble qu'il n'y ait pas une manière complètement précise, mais il pourrait être assez bon pour ce que je suis en train de faire. –

+0

@JonTackabury, quelle méthode avez-vous suivi? –

1

Une chose que vous pouvez faire est de sérialiser l'objet dans un fichier sur le disque. Cela devrait vous donner une idée.

Cette cache manager de ASP Alliance pourrait aider aussi bien

+0

J'ai essayé l'outil ASP Alliance et j'obtiens "Les données ne peuvent pas être sérialisées en Xml" pour la plupart des objets qui m'intéressent ... Quelqu'un a-t-il un code pour prendre des choses arbitraires de 'HttpRuntime.Cache' et le sérialiser? –