2010-03-29 8 views
9

Wo finde ich die CLR-Spezifikation? Zum Beispiel möchte ich sehen, wie im Speicher das Objekt "ThreadStart" implementiert ist..NET CLR-Spezifikationen

Danke.

Antwort

12

Die nächste von mir bekannt ist ECMA-335, die die CLI-Spezifikation ist. Sie sollten jedoch beachten, dass das ECMA-Speichermodell wesentlich schwächer ist als das .NET-Modell. (Wo .NET ist die Microsoft-Implementierung der CLI.)

Ich bezweifle, dass die CLI erwähnt ausdrücklich ThreadStart obwohl - es ist nur ein weiterer Delegierter. Woran interessiert dich das besonders?

+0

Ich würde gerne sehen, wie ein Objekt wie Delegat im Speicher (seine Felder, Methoden, etc ...) gebaut wird. – Thomas

+0

Nun, Sie können das mit Reflector * sehen, aber das wird implementierungsspezifisch sein - ich würde nicht erwarten, diese Informationen in einer Spezifikation zu finden. Sie sollten auch bedenken, dass die Delegierten eine Art doppelter Natur haben - Sie können sie in einer Multicast-Weise betrachten, oder Sie können überlegen, was eine "Aktion" hätte. Sie können dies in den Eigenschaften Delegate.Method/Target und MulticastDelegate.GetInvocationList sehen. –

+0

CLI-Spezifikationen steuern nur die C# -Sprache oder die CLR-Implementierung? Unterscheidet sich die ECMA-Spezifikation für CLR von ECMA-335? Nehmen wir an, ich muss eine CLR-Implementierung für ein anderes Betriebssystem als Windows schreiben, welche ECMA-Spezifikation sollte ich dann befolgen? – RBT

5

Nicht sicher über die Spec, aber wenn man sich Implementierungsdetails sehen wollen, können Sie verwenden möchten Red-gate Reflector