He estado trabajando en algunas funciones de PowerShell para administrar objetos implementados en un ensamblado que hemos creado. Una de las clases con las que he estado trabajando implementa IEnumerable. Desgraciadamente, esto hace que PowerShell desenrolle el objeto en cada oportunidad. (No puedo cambiar el hecho de que la clase implementa IEnumerable.)Hacer que PowerShell piense que un objeto no es enumerable
He solucionado el problema creando un PSObject y copiando las propiedades de nuestro objeto personalizado en el PSObject, y luego devolviendo eso en lugar del objeto personalizado . Pero prefiero devolver nuestro objeto personalizado.
¿Hay alguna manera, supuestamente utilizando mi archivo types.ps1xml, para ocultar el método GetEnumerator() de esta clase de PowerShell (o decirle a PowerShell que nunca lo desenrolle).
lo que tiene una clase de colección personalizada y no quieres PowerShell para tratarla como una colección? – rerun
Sí, eso es más o menos. La clase tiene cosas que no sean la colección. No permita que esto pase a ser una discusión sobre los (de) méritos de si esta clase debe ser enumerable o no. – OldFart