我不知道为什么:
Exception calling "GetSites" with "1" argument(s): "Cannot convert the "WS.WSErrorObject" value of type "WS.WSErrorObject" to type "WS.WSErrorObject"." At ... + WS.WSSiteEntity[] $sites = $webServiceProxy.GetSites([ref] $wsError) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : PSInvalidCastException
代码很简单:
$webServiceProxy = New-WebServiceProxy -Uri $elevateUri -Credential $credential -Namespace WS
$wsError = New-Object -TypeName WS.WSErrorObject
WS.WSSiteEntity[] $sites = $webServiceProxy.GetSites([ref] $wsError)
它与PowerShell 5 and classes - Cannot convert the "X" value of type "X" to type "X"类似,所以我认为这与存在多个相同类型的副本有关,但是我仍然无法解决。
我尝试使用完整的自动生成的类型名(即,不对Web Service代理使用名称空间),结果是相同的。
我尝试使用弱类型,但不知道如何在不构造新对象并为其指定类型的情况下为引用声明wsError。