Командлет C # Powershell: вызов другого командлета

#c# #powershell #cmdlet #pscmdlet

#c# #powershell #powershell-командлет

Вопрос:

Я создал набор командлетов PowerShell на C #.

Теперь у меня есть командлет, который может повторно использовать код другого командлета.

В Powershell это было бы легко, поскольку я мог бы просто вызвать командлет с параметрами, однако есть ли способ вызвать его на C #? Полная логика реализована в BeginProcessing() / ProcessRecord() / EndProcessing() реализации и в основном возвращает void / use WriteObject() , поэтому я думаю, что это будет невозможно (?).

Если я прав — каков правильный способ справиться с этим? Должен ли я извлечь основной код из BeginProcessing() метода и поместить его в отдельный метод, чтобы сделать его доступным?

Мы ценим любые отзывы, Джоэл

Комментарии:

1. Вот половина ответа. Существует некоторый метод, который вы можете использовать для вызова командлета, но вы можете вызывать только командлеты, которые наследуются непосредственно от Cmdlet , а не командлеты, которые наследуются от PSCmdlet . Даже если возможно вызвать ваш командлет из C #, лучшим решением может быть выделение важных элементов в отдельный метод.

2. Одна из причин, по которой я задал этот вопрос, заключалась в том, что я хочу придерживаться функций PSCmdlet «WriteVerbose» / «WriteDebug». Если я помещу необходимый код в отдельный класс, я больше не смогу их вызывать. Однако я мог бы найти обходной путь для этого. Спасибо за информацию!