我正在尝试用PHP调用Web服务。它工作正常,但我有一个函数,它抛出了一个NullReferenceException
.函数参数是 Web 服务的类,在 WSDL 文件中定义。在 C# 中,我可以创建这些类的实例,然后可以使用该方法传递这些实例。这就像预期的那样工作,但在 PHP 中我无法像在 C# 中那样创建类的这些实例。
我尝试从 WSDL 创建类的实例:
$myinstance1 = new SoapVar($content, SOAP_ENC_OBJECT, "Class1Name", $url_WSDL);
$myinstance2 = new SoapVar($content, SOAP_ENC_OBJECT, "Class2Name", $url_WSDL);
然后我尝试使用以下参数调用该方法:
$result = $soapclient->GetMyObjects($myinstance1, $myinstance2);
我想一个问题是,其中一个类是枚举类型。另一个类是整数数组的类型。当我尝试使用这些参数调用我的函数时,我仍然收到NullReferenceException
错误。
我认为问题是因为枚举类型没有正确转换。我是否正确实例化?有没有人有想法,如何解决这个问题?
我通过从WSDL文件生成php类来解决它。为此,我使用了工具wsdl2phpgenerator。
在我将值作为类对象传递后,它起作用了。