2010-11-11 14 views
1

Est-il possible dans .net d'obtenir toutes les instances de type concret créées dans l'application? Je suppose que ces informations sont stockées dans GC, mais est-ce accessible à partir du code?.Net: Est-il possible d'obtenir des instances d'objet créées plus tôt par type de classe?

+1

Je peux penser à quelques problèmes de sécurité possibles que cela pourrait apporter. – luiscubal

+0

Bien sûr, il ne serait disponible que dans un code de confiance marqué comme étant critique pour la sécurité. – CodesInChaos

Répondre

1

Non, ce n'est pas disponible normalement. Il est possible que l'API de débogage/profilage vous permette d'obtenir ceci (évidemment seulement les instances non encore collectées) mais pas dans le code normal.

0

Vous ne savez pas quel est votre scénario, mais je ne vois pas quand cette information serait utile. Aussi quelle serait la portée d'une telle information, fil? domaine de l'application? Assemblée? Par exemple, cela n'a aucun sens de dire de me donner une liste de tous les objets int dans le domaine de l'application, n'est-ce pas?

Si c'est pour un certain type que vous avez créé, vous pouvez contraindre la création d'objets de ce type en utilisant une sorte de classe de fabrique. Là, vous pouvez garder une trace de tous les objets qui sont instanciés pour votre type donné.

Espérons que cela aide.

+0

Scope serait domaine de l'application, toute autre chose n'a aucun sens du tout. Et cela aurait du sens pour le débogage lié au GC. Et je m'attendrais à une API de débogage/profilage qui fait quelque chose comme ça. – CodesInChaos