Динамические параметры - это строгий способ обработки именно того, что вы хотите сделать, но я не думаю, что в большинстве случаев они стоят усилий.
Самый простой способ справиться с этим - не обязательно указывать строковые параметры, а просто выполнить проверку в начале функции.
У вас есть блок process
, но примеры параметров не принимают конвейерный ввод.Если функция принимает входные данные конвейера, подумайте, куда вы помещаете эту проверку;возможно, в начале блока, но это будет зависеть от параметров, может быть?
Я также играл с злоупотреблением [ValidateScript({})]
для этого, но это не совсем сработает, потому что, если вы добавите его на [switch]
, вы не можете получить доступ / проверить другие параметры, чтобы проверить их значения, и если вы поместите его в условно обязательные значения (чтобы проверить наличие файла), он будет запускать проверку только тогда, когда параметр привязан.
Это также похоже на запах кода?Интересует ваш вариант использования.