2010-11-23 5 views
2

j'ai un service Web ASMX qui a une méthode -Utilisation des collections génériques en tant que paramètres dans les services Web ASMX

void DoSomething(List<string> list); 

J'ai mis en œuvre ce service, compilé et hébergé dans IIS. J'ai utilisé wsewsdl3.exe pour générer le proxy. Dans le proxy généré la définition de la méthode est modifiée pour -

DoSomething(string[] list) { .. 

est-il pas possible d'avoir la liste en tant que paramètre à un service Web ASMX? Que dois-je faire pour réparer le proxy?

+0

BTW, vous utilisez WSE. Saviez-vous que c'est très obsolète? –

+0

Oui John, nous utilisons WSE. Nous passons à WCF car certains de nos clients passent à Windows Server 2008. Cependant, la plupart des clients ne le sont pas et nous devons le soutenir pour eux. J'ai également trouvé votre article de blog sur MSDN http://social.msdn.microsoft.com/Forums/en/asmxandxml/thread/65224159-b7bf-44dc-937b-94fe2440ba70. Je vais essayer de l'utiliser pour obtenir les histoires de mise à niveau prioritaires :). –

Répondre

6

C'est normal. Les génériques sont un artefact spécifique à .NET. Il n'y a pas une telle notion dans le WSDL généré. Imaginez un client qui ne supporte pas les génériques comme PHP par exemple. C'est la raison pour laquelle votre collection générique est exposée en tant que tableau. Donc, il n'y a rien de mal avec votre proxy client qui nécessite de fixation.

+0

Ahh ok. Alors peut-être il vaut mieux que je change la méthode de service pour accepter la chaîne [] au lieu d'une liste . –

+0

Eh bien, c'est vraiment à vous. Cela ne ferait aucune différence mais si vous préférez avoir exactement la même signature alors oui vous pouvez le changer. –

+0

@Unmesh: vous n'avez rien à changer. En fait, si vous aviez utilisé "Add Service Reference" pour créer le client, le bouton "Advanced" aurait affiché une boîte de dialogue vous permettant d'utiliser 'List ' au lieu de 'T []'. –

Questions connexes