Puis-je avoir un paramètre facultatif pour un ASP.NET web service SOAP
Je veux construire un webservice avec cette signature, qui ne permet pas de lever une exception si param2 est laissé vide. Est-ce possible?
[WebMethod]
public string HelloWorld(string param1, bool param2) { }
À l'exception d'un Système.ArgumentException est levée lorsque vous tentez de convertir une chaîne de caractères vide booléens.
Idées qui n'ont pas travaillé jusqu'à présent:
-
la surcharge de méthode n'est pas autorisée pour les services web, comme
public string HelloWorld(string param1) { return HelloWorld(param1, false); }
comme l'a suggéré ici:
- faire
bool
nullablebool?
. Même exception. - manipuler le WSDL, voir cette réponse
Ma question est liée à cette question, mais la seule réponse à des contrats WCF, que je n'ai pas encore utilisé.
OriginalL'auteur Hauke | 2009-11-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir une Méthode Surchargée en webservices avec MessageName attribut. C'est une solution de contournement pour atteindre la saturation de la fonctionnalité.
Regarder http://msdn.microsoft.com/en-us/library/byxd99hx%28VS.71%29.aspx
Les méthodes sera visible que
Add2
etAdd3
à l'extérieur.Hauke, Non, deux méthodes différentes pour le monde extérieur. C'est une solution de contournement pour la Surcharge.
OriginalL'auteur
Si vous VRAIMENT ont pour ce faire, voici un sorte de hack pour le cas spécifique d'une méthode web qui a seulement les types primitifs comme paramètres:
OriginalL'auteur
Je sais que ce post est peu vieux. Mais je pense que les noms de méthode doit être la même pour l'exemple de Rasik.Si les deux noms de méthodes sont les mêmes, d'où une surcharge vient de là. Je pense que ça devrait être comme ça..
OriginalL'auteur
Vous ne pouvez pas avoir surchargé les méthodes du Service Web. Le protocole SOAP ne le supporte pas. Rasik du code est la solution de contournement.
OriginalL'auteur
Faire tous les arguments optionnels cordes. Si aucun argument n'est passé, l'entrée est considérée comme nulle.
OriginalL'auteur
Conformément à Attribut MinOccurs En Charge De La Liaison et Par Défaut De L'Attribut En Charge De La Liaison:
Type de valeur accompagnés par un public bool domaine qui utilise le Spécifiée convention de nommage décrit précédemment en vertu de la Traduction XSD à la source - minOccurs la valeur de la production
<element>
l'élément 0.résultat:
Type de la valeur avec une valeur par défaut spécifiée par l'intermédiaire d'un Système.Composante.DefaultValueAttribute - minOccurs la valeur de la production
<element>
l'élément 0. Dans le<element>
élément, la valeur par défaut est spécifié par la valeur par défaut des attributs XML.résultat:
OriginalL'auteur