2010-03-29 4 views
9

Où puis-je trouver la spécification de CLR? Par exemple, je veux voir comment est implémenté en mémoire l'objet "ThreadStart"..NET CLR spécifications

Merci.

Répondre

12

Le plus proche que je suis au courant est ECMA-335 qui est la spécification CLI. Cependant, vous devez savoir que le modèle de mémoire ECMA est significativement plus faible que le modèle .NET. (Où .NET est l'implémentation de Microsoft de la CLI.)

Je doute que l'interface de ligne de commande mentionne spécifiquement ThreadStart cependant - c'est juste un autre délégué. Qu'est-ce qui vous intéresse particulièrement à ce sujet?

+0

Je voudrais voir comment se construit un objet comme délégué en mémoire (ses champs, méthodes, etc ...). – Thomas

+0

Eh bien, vous * pouvez * regarder cela avec Reflector, mais ce sera spécifique à l'implémentation - je ne m'attendrais pas à trouver cette information dans une spécification. Vous devez également garder à l'esprit que les délégués ont une sorte de double nature - vous pouvez les voir de manière multicast, ou vous pouvez considérer ce qu'une "action" aurait. Vous pouvez le voir dans les propriétés Delegate.Method/Target et la méthode MulticastDelegate.GetInvocationList. –

+0

Les spécifications CLI ne pilotent que le langage C# ou l'implémentation du CLR? La spécification ECMA pour CLR est-elle différente de ECMA-335? Disons que je dois écrire une implémentation CLR pour un OS différent de Windows, alors quelle spécification ECMA je devrais suivre? – RBT

5

ne suis pas sûr du Spec, mais si vous voulez regarder les détails de mise en œuvre, vous pouvez utiliser Red-gate Reflector