Есть ли варианты, которые я могу добавить конструктор в класс, производный от PSCmdlet - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь создать командлет Powershell в C #, и у меня есть несколько классов с конструкторами.

Но проблема в том, что когда я запускаю команду ex. Add-NewOption показывает, что команда неизвестна. В противном случае, когда у меня нет конструктора, он работает отлично.

Так есть ли способ, которым я могу иметь конструктор в командлете?

ps. Это одинаково для Cmdlet иPSCmdlet.

1 Ответ

1 голос
/ 05 ноября 2019

В командлете может быть только конструктор без параметров.

В качестве обходного пути вы можете переопределить метод BeginProcessing() и использовать его для задач инициализации. Вы можете получить доступ к параметрам командлета (свойства, отмеченные как [Parameter()]) изнутри BeginProcessing(). Кроме того, вы можете переопределить методы Dispose() и EndProcessing() и выполнить там очистку.

Имейте в виду, что EndProcessing() не вызывается, если один из ProcessRecord() или BeginProcessing() вызывает исключение, ноDispose() всегда вызывается в конце конвейера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...