Englishfrançaisespagnol

Icône de favori OnWorks

genxs - En ligne dans le Cloud

Exécutez genxs dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande genxs qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


genxs - Générateur de sérialiseur Xml de Mono

SYNOPSIS


genx fichier de configuration [destinationFolder]

DESCRIPTION


genx est un outil permettant de générer des rédacteurs et des lecteurs de sérialisation XML personnalisés pour les classes.

fichier de configuration est un fichier de configuration qui spécifie plusieurs informations, telles que le
classe pour laquelle générer le lecteur et le rédacteur, le nom et l'espace de noms des classes
à générer et une collection de crochets à appliquer. En utilisant des crochets, il est possible de
personnaliser le comportement du sérialiseur sans avoir besoin de modifier le fichier généré, donc
vous pouvez le régénérer en toute sécurité si la classe source est modifiée.

dossier de destination spécifie le dossier dans lequel les fichiers seront générés.

NOTE: Cet outil ne s'exécute que dans le runtime Mono, car il utilise certaines classes internes non
disponible dans d'autres environnements d'exécution.

CONFIGURATION DOSSIER Format


Le fichier de configuration est un document XML basé sur la grammaire suivante ("?" signifie
facultatif, "*" 0 ou plus) :


*
Nom ?
Nom ?
Nom ?
Nom ?
?
*

?
*




Un fichier de configuration peut avoir plusieurs éléments « sérialiseur », dont chacun spécifie le
classe pour laquelle générer un sérialiseur avec plusieurs options de génération. Les
la classe source est spécifiée dans les attributs suivants :

* classe : nom de la classe (y compris l'espace de noms).

* Assemblée : nom de l'assemblage. Il peut inclure le chemin complet.

Les options de génération sont spécifiées dans les éléments enfants :

* lecteur : nom de la classe lecteur.

* pas de lecteur : si "true", il ne génère pas de classe de lecteur.

* écrivain : nom de la classe d'écriture.

* baseSérialiseur : nom de la classe de sérialisation xml de base. Cet article est 2.0 seulement.

* la mise en oeuvre : nom de la classe d'implémentation du sérialiseur. Cet article est 2.0 seulement.

* pas d'écrivain : si "true", il ne génère pas de classe d'écriture.

* namespace : espace de noms des classes de lecture et d'écriture.

* générerCommeInterne : si "true", il génère des classes en interne.

* nomFichierout : nom du fichier généré.

* lecteurHooks : une liste de crochets à appliquer au lecteur.

* écrivainCrochets : une liste de crochets à appliquer au rédacteur.

EN PRÉCISANT HOOKS


À l'aide de crochets, vous pouvez personnaliser le comportement des lecteurs et des rédacteurs. Une spécification de crochet
suit cette grammaire :


?
Nom ?
Nom *
Nom ?

code source ?
code source ?
code source ?


L'attribut "type" spécifie le contexte dans lequel le hook est appliqué. Il peut s'agir de l'un des
ce qui suit:

* attributs : le hook est appliqué là où les attributs sont sérialisés/désérialisés.

* éléments : le hook est appliqué là où les éléments sont sérialisés/désérialisés.

* Attribut inconnu : le hook est appliqué là où des attributs inconnus sont traités.

* Élément inconnu : le hook est appliqué là où des éléments inconnus sont traités.

* membre : le hook est appliqué lorsqu'un membre est sérialisé/désérialisé.

* type : le crochet est appliqué pour l'ensemble du type.

L'élément "select" spécifie les classes et les membres auxquels le hook doit être ajouté.
Il peut contenir les éléments suivants :

* typeNom : la classe portant ce nom sera sélectionnée (doit inclure un espace de noms)

* typeAttribut : toutes les classes auxquelles cet attribut est appliqué seront sélectionnées
(spécifiez le nom complet de la classe d'attributs, y compris l'espace de noms). Plusieurs noms d'attributs
peut être spécifié.

* typeMembre : nom du membre de la classe pour lequel le crochet doit être ajouté.

Le code source du hook peut être spécifié à l'aide de l'un des éléments suivants :

* remplacer : le code source fourni remplacera toute sérialisation/désérialisation
opérations dans le contexte du hook.

* insérerAvant : le code source sera ajouté avant le contexte du hook.

* insérerAprès : le code source sera ajouté après le contexte du hook.

Lors de l'écriture du code d'un hook, vous pouvez utiliser des variables spéciales définies
pendant le processus de génération de code. Les variables sont les suivantes :

* $TYPE : nom de la classe générée, sans espace de nom.

* $FULLTYPE : nom complet de la classe générée, y compris l'espace de noms.

* $OBJET : l'objet étant sérialisé ou désérialisé. Lors de l'utilisation d'un lecteur de remplacement
hook de type "type", le code hook doit affecter l'objet désérialisé à ce
variable.

* -I $ELEMENT : nom de l'élément de l'objet en cours de sérialisation/désérialisation.

* $NAMESPACE : espace de noms de l'élément de l'objet en cours de sérialisation/désérialisation.

* $MEMBRE : nom du membre en cours de sérialisation/désérialisation. Uniquement valable dans le "membre"
contexte

CROCHET EXEMPLES


L'exemple suivant ajoute un appel à une méthode Validate après la désérialisation de tout
objet:



System.Xml.Schema.XmlSchema.Validate$TYPE ($OBJECT);



Cet exemple spécifie le code à utiliser pour désérialiser la classe XmlSchema :



System.Xml.Schema.XmlSchema


$OBJECT = System.Xml.Schema.XmlSchema.Read (lecteur, null);



Celui-ci précise le code à utiliser pour lire les instances XmlSchema :



System.Xml.Schema.XmlSchema

$OBJECT.Write (Ecrivain);


Avec ces deux crochets, le sérialiseur imprimera des informations lors de la sérialisation de la classe
"Ma classe":



MyNamespace.MyClass

Console.WriteLine ("Sérialisation MyClass");
Console.WriteLine ("MyClass sérialisé");



MyNamespace.MyClass


Console.WriteLine ("Membre sérialisé $MEMBER");



Ce crochet écrit un élément supplémentaire pour tous les types qui ont l'attribut personnalisé
"Mon Attribut" :



MyNamespace.MyAttribute


Writer.WriteStartElement ("privateData");
Writer.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement ();



CONFIGURATION DOSSIER EXEMPLE


Il s'agit du fichier de configuration utilisé pour générer le sérialiseur pour ServiceDescription :



ServiceDescriptionReaderBase
ServiceDescriptionWriterBase
System.Web.Services.Description
Description du serviceSerializerBase.cs



System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.ReadExtension (Lecteur, $OBJECT);



System.Xml.Schema.XmlSchema

$OBJECT = System.Xml.Schema.XmlSchema.Read (Reader, null);





System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.WriteExtensions (Writer, $OBJECT);



System.Xml.Schema.XmlSchema

$OBJECT.Write (Ecrivain);





AUTEURS


Lluis Sánchez Gual ([email protected])

Utilisez genxs en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad