4

J'écrivais du code C# marchant de manière récursive les assemblages référencés d'un assemblage de base, construisant un graphe acyclique orienté de ces références pour faire un tri topologique. Je le fais à l'aide de la méthode GetReferencedAssemblies() sur la classe Assembly. Pendant le test du code, j'ai trouvé - à ma grande surprise - que certains assemblys dans le framework .NET se présentaient comme des références d'assemblage. Un tel exemple est System.Transactions, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 qui répertorie System.Transactions, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 comme référence, comme peut être vérifié dans Reflector. Une fois que je me suis rendu compte de cela, il était trivial de casser la récursion infinie en comparant les AssemblyNames, mais je suis curieux de la situation puisque je n'ai pas été capable de générer moi-même un assemblage auto-récursif. (Je ne peux pas donner d'informations sur Google à ce sujet et m'y ajouter comme référence ne rend pas l'ensemble résultant auto-récursif.)Rencontre de références d'assembly auto récursives dans le framework .NET

En bref: les références d'assemblage auto récursives sont-elles vraiment "casher" - quelle serait la raison d'être de assemblys système pour se référencer eux-mêmes être?

Merci.

Répondre