Ho lavorato su alcune funzioni di PowerShell per gestire gli oggetti implementati in un assembly che abbiamo creato. Una delle classi con cui ho lavorato è IEnumerable. Sfortunatamente, questo fa sì che PowerShell srotoli l'oggetto in ogni occasione. (Non posso cambiare il fatto che la classe implementa IEnumerable.)Fai in modo che PowerShell pensi che un oggetto non sia enumerabile
Ho risolto il problema creando un oggetto PSO e copiando le proprietà del nostro oggetto personalizzato su PSObject, restituendole invece dell'oggetto personalizzato . Ma preferirei davvero restituire il nostro oggetto personalizzato.
C'è un modo, presumibilmente, usando il mio file types.ps1xml, per nascondere il metodo GetEnumerator() di questa classe da PowerShell (o altrimenti dire a PowerShell di non srotolarlo mai).
Quindi si dispone di una classe di raccolta personalizzata e non si desidera che PowerShell lo tratti come una raccolta? – rerun
Sì, è praticamente tutto. La classe ha cose diverse dalla collezione. Per favore non lasciare che questo diventi una discussione sul (de) merito se questa classe debba o meno essere enumerabile. – OldFart