将php中的字符串数组转换为nuSOAP中的用户定义数据类型

时间:2013-03-24 22:29:55

标签: c# php web-services nusoap

继续讨论现有问题:Can nusoap return array of string?

我想知道函数GetAllNews()的代码返回数组$ stack的字符串作为数据类型“tns:ArrayOfString”

先生。 Oliver Salzburg仅为ArrayOfString类型的声明提供了代码,但是如何将字符串数据类型的普通php数组转换为用户定义的数据类型ArrayOfString?这样我就可以在C#代码中将这些数据称为:

wService.Service WebS = new wService.Service();
wService.ArrayOfString StringArray = new wService.ArrayOfString();
StringArray = WebS.GetAll();
string [] All= StringArray.itemName[0];

我的目标是从php / nuSOAP返回一个字符串数组到我的C#代码。

1 个答案:

答案 0 :(得分:1)

首先将代码上方的ArrayOfString定义为

$server->wsdl->addComplexType(
'ArrayOfString',
'complexType',
'array',
'all',
'SOAP-ENC:Array',
array(),
array(
array(
   'ref'=>'SOAP-ENC:arrayType',
   'wsdl:arrayType'=>'xsd:string[]'
   )
),
'xsd:string'
);

然后将方法'GetAllNews'声明为

$server->register('GetAllNews', 
 array(),
 array('return' => 'tns:ArrayOfString'),  //use 'tns:ArrayOfString' instead of 'xsd:string[]'
 'urn:NewsService',
 'urn:NewsService#GetAllNews',
 'rpc',
 'literal',  //You can also use 'encoded'
 ''
);

上面的代码将返回一个字符串数组(string [])在C#中调用'GetAllNews'方法

string [] AllNews = new WebService.GetAllNews();