J'ai travaillé sur certaines fonctions PowerShell pour gérer les objets implémentés dans un assemblage que nous avons créé. L'une des classes avec lesquelles j'ai travaillé implémente IEnumerable. Malheureusement, cela provoque PowerShell à dérouler l'objet à chaque occasion. (Je ne peux pas changer le fait que la classe implémente IEnumerable.)Rendre PowerShell pense qu'un objet n'est pas énumérable
J'ai travaillé autour du problème en créant un objet PSObject et en copiant les propriétés de notre objet personnalisé à PSObject, puis en retournant cela à la place de l'objet personnalisé . Mais j'aimerais vraiment retourner notre objet personnalisé. Y a-t-il un moyen, probablement en utilisant mon fichier types.ps1xml, de masquer la méthode GetEnumerator() de cette classe de PowerShell (ou de dire à PowerShell de ne jamais la dérouler).
Vous avez donc une classe de collection personnalisée et vous ne voulez pas que powershell la traite comme une collection? – rerun
Oui, c'est à peu près tout. La classe a des choses autres que la collection. S'il vous plaît, ne laissez pas cela déboucher sur une discussion sur les (dés) mérites de savoir si cette classe devrait ou non être énumérable. – OldFart