2010-07-20 2 views
1

J'ai un service WCF assis dans le nuage. Et mon application fait plusieurs appels à ce service WCF. Est-ce une bonne pratique: 1] pour toujours utiliser la valeur de retour comme bool qui indique si l'opération a été réussie ou non. 2] retourner les valeurs que vous vouliez dire revenir les paramètres OUTbonne pratique pour la valeur de retour dans les services WCF

Répondre

1

Je voudrais:

  • retour d'une valeur atomique (bool, string, int) si le retour approprié
  • un type complexe (instance de classe) si je dois retourner plus d'une valeur - assurez-vous de marquer cette classe avec [DataContract] et ses propriétés avec [DataMember]

  • une erreur SOAP FaultException<T> lorsqu'une erreur se produit; la <T> partie vous permet de définir vos propres classes d'erreur personnalisées, et encore - ne pas oublier de les marquer avec [DataContract]/[DataMember] et les déclarer comme FaultContract sur vos opérations

0

1] pour toujours utiliser la valeur de retour comme bool qui indique si l'opération a été réussie ou non

  • Oui, si le temps de fonctionnement isnt consumait et le statut de retour est toujours pertinent: en attente d'une valeur de retour peut affecter les performances hôte du client et de service (serveur)/l'évolutivité. Ex. Dans un Request-Responsecall, les requêtes peuvent garder les connexions ouvertes pendant une longue période de temps en attendant la fin de l'opération. Vous pouvez implémenter d'une manière similaire à l'utilisation du code d'état "HTTP 202 Accepted" (c'est-à-dire les arguments reçus et démarrés (patiemment), mais attend l'achèvement)
  • Non, si la logique d'opération n'a de sens que si elle est synchrone. Non, si vous tenez à la refactorisation/maintenabilité ex. Lorsque vous voulez retourner inclure un message d'erreur/code dans le retour.

2] retourner les valeurs que vous vouliez dire revenir les paramètres OUT

  • Oui, cela fait plus wsdl conforme et facile à lire l'opération de service.