Dans certains j'ai vu que tous les contrats de services de projets comme l'entreprise (.NET, WCF) acceptent un seul paramètre Request
et retour toujours Response
:Demande/modèle de réponse dans la mise en œuvre SOA
[DataContract]
public class CustomerRequest : RequestBase {
[DataMember]
public long Id { get; set; }
}
[DataContract]
public class CustomerResponse : ResponseBase {
[DataMember]
public CustomerInfo Customer { get; set; }
}
où RequestBase/ResponseBase
contiennent des choses communes comme ErrorCode, Context, etc. Les corps des méthodes de service et des proxys sont enveloppés dans try/catch, donc la seule façon de vérifier les erreurs est de regarder ResponseBase.ErrorCode
(qui est l'énumération).
Je veux savoir comment cette technique est appelée et pourquoi est-elle meilleure comparée à passer ce qui est nécessaire comme paramètres de méthode et en utilisant les mécanismes de passage/défauts de contexte standard de WCF?
Juste pour ajouter aux avantages et ceci est mon préféré. * DataContracts résiste aux modifications (plus faciles à effectuer) que OperationContracts. Si vous ajoutez un paramètre, vous modifiez OperationContract, ce qui constitue un changement important pour les anciens consommateurs. Si vous ajoutez une propriété à votre DataContract, les anciennes versions peuvent toujours fonctionner (si elles sont correctement codées). –
En ce qui concerne votre deuxième puce, comment marqueriez-vous une propriété sur un contrat de données si nécessaire, facultatif, etc.? – elucid8
elucid8, sur le membre de données, vous pouvez ajouter IsRequired = true/false pour rendre la propriété requise/facultative. – CkH