Можно ли каким-то образом зарегистрировать типы из модуля (библиотека классов .NET, dll) глобально для моей учетной записи службы автоматизации Azure, чтобы модули Runbook Powershell не использовали команду Add-Type
, чтобы использовать типы?
Немного предыстории:
Я пытаюсь ввести правильные модели данных для использования в качестве входных и выходных данных в моих приложениях логики Azure и модулях Runbook. Эти модели определены в библиотеке классов .NET, и я успешно импортировал библиотеку как модуль. Я могу использовать команду Add-Type
для использования типов, но я не могу понять, как использовать типы в качестве входных данных Powershell, потому что ключевое слово Param
должно быть первой строкой кода в скрипте.
Param
(
[Parameter(Mandatory=$true)]
[MyLibrary.MyDto] $dto # ... doesn't work, the MyDto type is unknown
)
Add-Type -Path "C:\Modules\User\MyLibrary\MyLibrary.dll" # How do I avoid having to do this in all my PS runbooks?
$response = New-Object -TypeName MyLibrary.MyResponse -ArgumentList "xxx" # ... this works just fine!
# ... more stuff to come
В приведенном выше примере создание MyResponse
работает, но использование MyDto
в качестве входного параметра не работает, поскольку в этот момент тип неизвестен.