Я часто получаю данные из базы данных и настраиваю коллекцию типов объектов datarow, чтобы отразить «тип» данных, которые представляет строка. Например, если я смотрю на datarows, которые представляют компьютерные объекты, я могу добавить «MDS__COMPUTER» в конец коллекции TypeNames. Я делаю то же самое с PSObjects, которые я создаю с помощью New-Object.Работа с настраиваемыми записями и параметрами PowerShell TypeNames
Я использовал это в прошлом с системой расширенного типа PowerShell (ETS), чтобы помочь с форматированием и добавлением элементов на уровне типа, а не с помощью add-member, но мне бы очень хотелось иметь возможность ограничивать параметры функций и скриптов, указав эти «мета-типы» как тип параметра.
В примере, который я дал выше, я хотел бы быть в состоянии сделать это:
Param([MDS__COMPUTER]$comp)
и иметь чек PowerShell, чтобы увидеть, если $ Comp переданный объект имел, что в его коллекции TypeNames.
Возможно ли это как-то? Я бы хотел избежать создания реальных классов C# и копирования данных из объектов datarow (или PSObjects) в новые объекты.
Следует упомянуть, что использование типа, который не существует в качестве реального типа, вызывает ошибку.
Вы пытались использовать 'ValidateScript' в качестве свойства параметра? – TheMadTechnician