0

既存の質問に続いて:nusoapは文字列の配列を返すことができますか?

配列$stackの文字列をデータ型"tns:ArrayOfString"として返す関数GetAllNews()のコードを知りたい

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#コードに文字列の配列を返すことです。

4

1 に答える 1

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();
于 2013-06-26T19:58:32.503 に答える