Question

J'ai généré classes C# basé sur XSD à l'aide de la xsd.exe l'outil du SDK.Alors je peux utiliser cette classe à [de]sérialiser des objets à l'aide de XmlSerializer...Cependant, le processus semble être très indulgent.

Est-il possible que je peux faire le sérialiseur lever une exception dans le cas où il manque un bien ou d'un "étrange" nœud XML?

Je pense qu'une voie est de modifier le setter de la propriété et de le faire valider les données (ou utilisez validation XSD)...Cependant est-il une autre solution pour ce problème ?

Était-ce utile?

La solution

Vous pouvez mettre en œuvre la IXmlSerializable interface et dans le ReadXml méthode mise en œuvre, de vérifier les éléments spécifiques que vous avez besoin de lever des exceptions lorsque vous ne trouvez pas (ou quel que soit le réglage de notification vous avez besoin).

Si vous souhaitez utiliser un schéma de validation (pour utiliser le minOccurs et maxOccurs les attributs de schéma, par exemple), vous pouvez configurer l' XmlReader exemple pour la validation du schéma par le réglage de la Schemas propriété sur le XmlReaderSettings classe que vous transmettez à l' Create méthode (remarque: il existe des surcharges de Create qui prennent un TextReader, etc.).

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