4

Ich schrieb einige C# -Code rekursiv die referenzierten Assemblys einer Basisassembly, wobei ein gerichteter azyklischer Graph dieser Referenzen erstellt wurde, um eine topologische Sortierung durchzuführen. Ich mache das mit Hilfe der Methode GetReferencedAssemblies() für die Assembly-Klasse.Treffen selbstrekursiver Assemblyverweise im .NET-Framework

Beim Testen des Codes habe ich zu meiner Überraschung festgestellt, dass einige Assemblys im .NET-Framework sich scheinbar als Assemblyreferenzen auflisten. Ein solches Beispiel ist System.Transactions, Version = 2.0.0.0, Kultur = neutral, PublicKeyToken = b77a5c561934e089 welche Listen System.Transactions, Version = 2.0.0.0, Kultur = neutral, PublicKeyToken = b77a5c561934e089 als eine Referenz, wie kann im Reflektor überprüft werden.

Sobald ich das erkannte, war es trivial, die unendliche Rekursion durch den Vergleich der AssemblyNames zu brechen, aber ich bin neugierig auf die Situation, da ich selbst keine selbstrekursive Assembly erzeugen konnte. (Ich kann Google keine Informationen dazu und mich selbst als Referenz hinzufügen macht die resultierende Assembly nicht rekursiv.)

Kurz gesagt: Sind selbstrekursive Assembly Referenzen wirklich "koscher" - was wäre die Begründung für ein paar der System-Baugruppen zu referenzieren sein?

Danke.

Antwort