#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». Если я помещу необходимый код в отдельный класс, я больше не смогу их вызывать. Однако я мог бы найти обходной путь для этого. Спасибо за информацию!