Question

Nous définissons certains contrats WCF pour un projet.

Dans un cas, nous voulons donc envoyer un champ d'état. Nous pensons que l'envoi de ce texte.

  • Pouvons-nous spécifier dans le contrat WCF que seules ces évaluations de chaîne x sont autorisées?
  • Serait-il préférable d'utiliser des énumérations?

Nous interopérerons avec Java Web Services.

Était-ce utile?

La solution

Non, vous ne pouvez pas, mais vous pouvez utiliser des enums qui sont ensuite transformés en l'équivalent de schéma d'une liste restreinte de chaînes. Cela est également utile aux clients non-WCF car ils peuvent facilement voir quelle est la plage des valeurs de chaîne autorisées.

Malheureusement, les énumérements sont livrés avec des bagages malheureux dans WCF en matière de versioning. Plus précisément, vous ne pouvez pas simplement ajouter une nouvelle énumération et ne pas casser les clients WCF existants. L'ajout d'une nouvelle énumération est donc considéré comme un changement de rupture.

Vous devrez peser ces deux options et décider lequel vous convient le mieux. Si vous choisissez une chaîne "pure", vous devrez valider les valeurs vous-même. Cela peut être fait génériquement en écrivant un IParameterInspector que vous pouvez accrocher à tous vos services qui pourraient utiliser le contrat de données que vous souhaitez contraindre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top