Modele contrat de recouvrement

Les types contenus dans les collections doivent être des types de contrat de données, ou être sérialisables par ailleurs. Pour plus d`informations, consultez types pris en charge par le sérialiseur de contrat de données. Les types d`interface de collection (IEnumerable, IDictionary, IDictionary génériqueou interfaces dérivées de ces interfaces) sont également considérés comme ayant des contrats de données de collection, équivalents aux contrats de données de collection pour les types de collection réels. Ainsi, il est possible de déclarer le type sérialisé en tant que type d`interface de collection et les résultats sont les mêmes que si un type de collection réel avait été utilisé. Par exemple, les contrats de données suivants sont équivalents. Les tableaux d`octets et de tableaux de XmlNode sont des types de tableau spéciaux qui sont traités comme des primitives, et non des collections. La sérialisation d`un tableau d`octets aboutit à un élément XML unique qui contient un fragment de données encodées en base64, au lieu d`un élément distinct pour chaque octet. Pour plus d`informations sur la façon dont un tableau de XmlNode est traité, consultez XML et ADO.NET types dans les contrats de données. Bien sûr, ces types spéciaux peuvent eux-mêmes participer à des collections: un tableau de tableau d`octets se traduit par plusieurs éléments XML, chacun contenant un fragment de données encodées en base64. L`attribut CollectionDataContractAttribute est utilisé pour personnaliser le nom, au lieu de l`attribut DataContractAttribute. L`attribut CollectionDataContractAttribute possède également les propriétés Name et namespace. Ce modèle de contrat pour une prestation internationale de services: • il comprend des sections sur les services à fournir à une date précise, et une autre section sur les services fournis à diverses dates ou pour des durées différentes. • le modèle comprend également une section sur des dommages-intérêts si l`une ou l`autre partie n`adhère pas à l`accord, y compris la responsabilité des pertes de profits causées par le fournisseur.

• les utilisateurs doivent modifier les sections au besoin et supprimer des sections qui ne sont pas pertinentes. Ce modèle de contrat est un cadre général seulement − et doit être adapté aux circonstances de l`Alliance ou de la collaboration particulière. Langues disponibles: EN – FR – ES – PT application de l`attribut CollectionDataContractAttribute à un type qui implémente l`interface IXmlSerializable. Toutefois, à l`aide de la propriété ItemName sur l`attribut CollectionDataContractAttribute, ce nom d`élément répétitif peut être personnalisé. Pour obtenir un exemple, consultez le type suivant. Les doublons ne sont pas autorisés, par exemple, vous ne pouvez pas ajouter à la fois la liste générique de Integer et la collection générique de Integer à ReferencedCollectionTypes, car cela rend impossible de déterminer lequel utiliser lorsqu`une liste d`entiers est trouvée dans le Schéma. Les doublons sont détectés uniquement s`il existe un type dans le schéma qui expose le problème des doublons. Par exemple, si le schéma importé ne contient pas de listes d`entiers, il est autorisé d`avoir à la fois la liste générique de Integer et la collection générique de Integer dans ReferencedCollectionTypes, mais aucun n`a d`effet. Comme mentionné précédemment, la personnalisation des collections à l`aide de l`attribut CollectionDataContractAttribute peut interférer avec l`interchangeabilité de la collection. Deux types de collection personnalisés ne peuvent être considérés comme équivalents que si leur nom, leur espace de noms, leur nom d`élément, ainsi que les noms de clé et de valeur (s`il s`agit de collections de dictionnaires) correspondent.

Ce modèle de contrat est un cadre général seulement − et doit être adapté aux circonstances de l`Alliance ou de la collaboration particulière. L`application de l`attribut CollectionDataContractAttribute à une collection pour la personnaliser supprime le mécanisme de secours précédent SerializableAttribute. Au lieu de cela, si une collection personnalisée ne répond pas aux exigences de type de collection, une exception InvalidDataContractException est levée.