C# 从PowerShell向SOAP web服务传递继承的复杂类型
我试图调用一个旧的SOAP web服务,它接受一个复杂的继承类型作为参数之一:C# 从PowerShell向SOAP web服务传递继承的复杂类型,c#,powershell,soap,C#,Powershell,Soap,我试图调用一个旧的SOAP web服务,它接受一个复杂的继承类型作为参数之一: <s:complexType name="CreditCard"> <s:complexContent mixed="false"> <s:extension base="tns:PaymentCardBase"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Cvv2" t
<s:complexType name="CreditCard">
<s:complexContent mixed="false">
<s:extension base="tns:PaymentCardBase">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Cvv2" type="s:string"/>
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="PaymentCardBase" abstract="true">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="CardHolderName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="CardNumber" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="ExpiryDate" type="s:string"/>
</s:sequence>
</s:complexType>
错误是:
Cannot convert argument "1", with value: "CATO.CreditCard", for "DoStuff" to type "CATO.PaymentCardBase":
"Cannot convert the "CATO.CreditCard" value of type "CATO.CreditCard" to type "CATO.PaymentCardBase"."
+ $result = $cato.DoStuff<<<< ("10024007", $card)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
无法将“DoStuff”的值为“CATO.CreditCard”的参数“1”转换为类型“CATO.PaymentCardBase”:
无法将“CATO.CreditCard”类型的“CATO.CreditCard”值转换为“CATO.PaymentCardBase”类型
+$result=$cato.dostuff您是否尝试过将-as放在末尾?例如,$card=(新对象($type+“.CreditCard”)-作为[YourNamespace.PaymentCardBase]
?通常,只要该类型是继承层次结构的一部分,就没有问题,但您也在调用来自PowerShell的请求。您是否尝试过将-as放在它的末尾?例如,$card=(新对象($type+“.CreditCard”))-作为[YourNamespace.PaymentCardBase]
?通常,只要类型是继承层次结构的一部分,就没有问题,但您也在调用来自PowerShell的请求。
$card = New-Object($type + ".CreditCard")
$result = $cato.DoStuff("10024007", $card)
Cannot convert argument "1", with value: "CATO.CreditCard", for "DoStuff" to type "CATO.PaymentCardBase":
"Cannot convert the "CATO.CreditCard" value of type "CATO.CreditCard" to type "CATO.PaymentCardBase"."
+ $result = $cato.DoStuff<<<< ("10024007", $card)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument