Кто-нибудь обнаружил, чтобы это произошло.Я хочу иметь командлет, который создает вывод из базы данных.Конкретной схемы нет, каждая «строка» может иметь разные поля.В чем-то вроде javascript это не будет проблемой, каждый объект будет иметь все необходимые свойства;но powershell не такой.
Я попробовал наивную реализацию, но все, что я получил, это перечисление словаря Key, Value, которое расширяется, притворяясь.
Расширяя вопрос.1006 * Какой объект должен выполнить командлет get-datarows по каналу (он принимает произвольные запросы).Я не знаю, какие типы объектов нужно создавать и выдвигать.Запрос базы данных может вернуть строку с User = dave, Age = 12, затем другую строку с User = pete, Favcol = red.В следующий раз при запуске командлета запрос может вернуть что-то совершенно другое (Type = shoe, color = red, use = dance).Возможность создания конвейера экспансии здесь прекрасно работает (за исключением того, что это не так)
Мой лучший путь - создать тип на лету с помощью mirror.emit, но для этого необходимо, чтобы я знал схемуобъектов.Я мог бы сделать это, посмотрев на первый объект, возвращенный запросом db, но у него могут быть не все возможные атрибуты (как в первых двух пользовательских строках выше).Я мог читать до самого конца;сделать тип, перемотать и нажать экземпляры динамически созданного типа, но это не очень эффективно
EDIT2: еще больше разъяснений
Я кодирую в C #
Я хочучтобы иметь возможность
mycmdlet -query "users" | ft
или
mycmdlet -query "products;type=shoe,size>1" | make-pretty
Я не хочу, чтобы пользователю приходилось выполнять целую кучу операций по формированию данных;в этом вся цель командлета