Вздох. В другой день, еще один метод взаимодействия PowerShell с .NET, я просто не понимаю. На этот раз с подписанным XML, но проблема в том, как создать новый объект.
$signedXml = New-Object system.security.cryptography.xml.signedXml -argumentList:$xml
работает. Но там, где это возможно, я переехал на [type]::New()
. И ... $signedXml = [System.Security.Cryptography.Xml.SignedXml]::New($xml)
не работает. В сценарии. Работает нормально в ISE, но при запуске в качестве сценария я получаю
Не удается найти тип [System.Security.Cryptography.Xml.SignedXml].
Итак,что происходит под капотом так, что использование конструктора работает только в ISE, в то время как New-Object также работает в сценарии. И как кто-то может потерпеть неудачу? У меня есть много других вещей, которые я переместил на [type]::New()
без проблем. Является ли мой единственный вариант использовать командлет, когда мне не удается выполнить конструктор? Это приводит к менее последовательному, читабельному коду на мой взгляд.