EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

genxs – Online in der Cloud

Führen Sie genxs im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl genxs, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


genxs – Monos XML-Serializer-Generator

ZUSAMMENFASSUNG


genxs Konfigurationsdatei [Zielordner]

BESCHREIBUNG


genxs ist ein Tool zum Generieren benutzerdefinierter XML-Serialisierungsschreiber und -leser für Klassen.

Konfigurationsdatei ist eine Konfigurationsdatei, die verschiedene Informationen angibt, z
Klasse, für die der Reader und Writer generiert werden soll, der Name und der Namensraum der Klassen
zum Generieren und eine Sammlung von Hooks zum Anwenden. Durch die Verwendung von Haken ist dies möglich
Passen Sie das Verhalten des Serialisierers an, ohne die generierte Datei ändern zu müssen
Sie können es sicher neu generieren, wenn die Quellklasse geändert wird.

Zielordner Gibt den Ordner an, in dem die Dateien generiert werden.

Anmerkungen: Dieses Tool läuft nur in der Mono-Laufzeit, da es einige interne Klassen nicht verwendet
in anderen Laufzeiten verfügbar.

CONFIGURATION FILE FORMAT


Die Konfigurationsdatei ist ein XML-Dokument, das auf der folgenden Grammatik basiert („?“)
optional, „*“ 0 oder mehr):


*
Name ?
Name ?
Name ?
Name ?
?
*

?
*




Eine Konfigurationsdatei kann mehrere „Serializer“-Elemente enthalten, von denen jedes das angibt
Klasse, für die ein Serialisierer zusammen mit mehreren Generierungsoptionen generiert werden soll. Der
Die Quellklasse wird in den folgenden Attributen angegeben:

* Klasse : Name der Klasse (einschließlich Namespace).

* Versammlung : Assemblyname. Es kann den vollständigen Pfad enthalten.

Generierungsoptionen werden in untergeordneten Elementen angegeben:

* Leser : Name der Leserklasse.

* noReader : Wenn „true“, wird keine Leserklasse generiert.

* Schriftsteller : Name der Writer-Klasse.

* baseSerializer : Name der Basis-XML-Serialisierungsklasse. Dieser Artikel ist nur 2.0.

* Implementierung : Name der Serializer-Implementierungsklasse. Dieser Artikel ist nur 2.0.

* noWriter : Wenn „true“, wird keine Writer-Klasse generiert.

* Namensraum : Namespace der Reader- und Writer-Klassen.

* generateAsInternal : Wenn „true“, werden Klassen als intern generiert.

* outFileName : Name der generierten Datei.

* ReaderHooks : eine Liste von Hooks, die auf den Reader angewendet werden sollen.

* WriterHooks : eine Liste von Hooks, die auf den Autor angewendet werden sollen.

SPEZIFIKATION HAKEN


Mithilfe von Hooks können Sie das Verhalten von Lesern und Autoren anpassen. Eine Hook-Spezifikation
folgt dieser Grammatik:


?
Name ?
Name *
Name ?

Quellcode ?
Quellcode ?
Quellcode ?


Das Attribut „type“ gibt den Kontext an, in dem der Hook angewendet wird. Es kann eines davon sein
die folgende:

* Attribute : Hook wird angewendet, wenn Attribute serialisiert/deserialisiert werden.

* Elemente : Hook wird dort angewendet, wo Elemente serialisiert/deserialisiert werden.

* Unbekannte Eigenschaft : Hook wird angewendet, wenn unbekannte Attribute verarbeitet werden.

* unbekanntes Element : Hook wird angewendet, wenn unbekannte Elemente verarbeitet werden.

* Mitglied : Hook wird angewendet, wenn ein Mitglied serialisiert/deserialisiert wird.

* tippe : Hook wird für den gesamten Typ angewendet.

Das „select“-Element gibt die Klassen und Mitglieder an, zu denen der Hook hinzugefügt werden muss.
Es kann folgende Elemente enthalten:

* Modellname : Die Klasse mit diesem Namen wird ausgewählt (muss Namespace enthalten)

* typeAttribute : Alle Klassen, auf die dieses Attribut angewendet wurde, werden ausgewählt
(Geben Sie den vollständigen Namen der Attributklasse an, einschließlich Namespace). Mehrere Attributnamen
angegeben werden kann.

* typeMember : Name des Klassenmitglieds, für das der Hook hinzugefügt werden muss.

Der Hook-Quellcode kann mit einem der folgenden Elemente angegeben werden:

* ersetzen : Der bereitgestellte Quellcode ersetzt die gesamte Serialisierung/Deserialisierung
Operationen im Hook-Kontext.

* insertBefore : Der Quellcode wird vor dem Hook-Kontext hinzugefügt.

* einfügenNach : Der Quellcode wird nach dem Hook-Kontext hinzugefügt.

Beim Schreiben des Codes für einen Hook können Sie einige spezielle, definierte Variablen verwenden
während des Codegenerierungsprozesses. Die Variablen sind die folgenden:

* $TYPE: Name der zu generierenden Klasse, ohne Namensraum.

* $FULLTYPE: Vollständiger Name der zu generierenden Klasse, einschließlich Namespace.

* $OBJECT: das Objekt, das serialisiert oder deserialisiert wird. Bei Verwendung eines Ersatzlesers
Hook vom Typ „type“, der Hook-Code muss diesem das deserialisierte Objekt zuweisen
variabel.

* -I $ELEMENT: Name des Elements des Objekts, das serialisiert/deserialisiert wird.

* $NAMESPACE: Namespace des Elements des Objekts, das serialisiert/deserialisiert wird.

* $MITGLIED: Name des Mitglieds, das serialisiert/deserialisiert wird. Nur gültig im „Mitglied“
Kontext.

HOOK Beispiele:


Im folgenden Beispiel wird nach der Deserialisierung einer Validate-Methode ein Aufruf hinzugefügt
Objekt:



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



Dieses Beispiel gibt den Code an, der zum Deserialisieren der XmlSchema-Klasse verwendet werden soll:



System.Xml.Schema.XmlSchema


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



Dieser gibt den Code an, der zum Lesen von XmlSchema-Instanzen verwendet werden soll:



System.Xml.Schema.XmlSchema

$OBJECT.Write (Writer);


Mit diesen beiden Hooks gibt der Serialisierer beim Serialisieren der Klasse einige Informationen aus
"Meine Klasse":



MyNamespace.MyClass

Console.WriteLine („Serializing MyClass“);
Console.WriteLine („MyClass serialisiert“);



MyNamespace.MyClass


Console.WriteLine ("Serialisiertes Mitglied $MEMBER");



Dieser Hook schreibt ein zusätzliches Element für alle Typen, die das benutzerdefinierte Attribut haben
„MeinAttribut“:



MeinNamespace.MeinAttribut


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



CONFIGURATION FILE BEISPIEL


Dies ist die Konfigurationsdatei, die zum Generieren des Serialisierers für ServiceDescription verwendet wird:



ServiceDescriptionReaderBase
ServiceDescriptionWriterBase
System.Web.Services.Description
ServiceDescriptionSerializerBase.cs



System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.ReadExtension (Reader, $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 (Writer);





AUTOREN


Lluis Sánchez Gual ([E-Mail geschützt] )

Nutzen Sie genxs online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    AstroOrzPlayer
    AstroOrzPlayer
    AstrOrz Player ist ein kostenloser Mediaplayer
    Software, teilweise basierend auf WMP und VLC. Das
    Spieler ist in einem minimalistischen Stil, mit
    mehr als zehn Themenfarben und können auch
    b ...
    Laden Sie den AstrOrzPlayer herunter
  • 2
    movistv
    movistv
    Kodi Movistar+ TV ist ein ADDON für XBMC/
    Kodi que Permite disponer de un
    Dekodifikator der IPTV-Dienste de
    Movistar ist in einem Jahr integriert
    Mediacenter ma...
    Moviestartv herunterladen
  • 3
    Code :: Blocks
    Code :: Blocks
    Code::Blocks ist ein kostenloses Open-Source-Programm,
    plattformübergreifende C-, C++- und Fortran-IDE
    gebaut, um die anspruchsvollsten Anforderungen zu erfüllen
    seiner Nutzer. Es ist sehr konzipiert
    verlängert...
    Laden Sie Code::Blocks herunter
  • 4
    Inmitten
    Inmitten
    Inmitten oder Advanced Minecraft Interface
    und Data/Structure Tracking ist ein Werkzeug, um
    eine Übersicht über ein Minecraft anzeigen
    Welt, ohne sie tatsächlich zu erschaffen. Es
    können ...
    Herunterladen Mitten
  • 5
    MSYS2
    MSYS2
    MSYS2 ist eine Sammlung von Tools und
    Bibliotheken, die Ihnen eine bieten
    benutzerfreundliche Umgebung zum Erstellen,
    Installation und Ausführung von nativem Windows
    Software. Es besteht...
    Laden Sie MSYS2 herunter
  • 6
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo ist ein JPEG-Bildcodec
    das SIMD-Anweisungen verwendet (MMX, SSE2,
    NEON, AltiVec) zur Beschleunigung der Grundlinie
    JPEG-Komprimierung und -Dekomprimierung aktiviert
    x86, x8...
    Laden Sie libjpeg-turbo herunter
  • Mehr »

Linux-Befehle

  • 1
    Abi-Tracker
    Abi-Tracker
    abi-tracker – ABI-Änderungen visualisieren
    Zeitleiste einer C/C++-Softwarebibliothek.
    BESCHREIBUNG: NAME: ABI Tracker
    (abi-tracker) Visualisieren Sie ABI-Änderungen
    Zeitleiste eines C/C+...
    Führen Sie abi-tracker aus
  • 2
    Abicheck
    Abicheck
    abicheck – Anwendungsbinärdateien prüfen
    für Anrufe zu privaten oder sich entwickelnden Symbolen
    in Bibliotheken und zur statischen Verlinkung von
    einige Systembibliotheken. ...
    Führen Sie abicheck aus
  • 3
    Kuriermlm
    Kuriermlm
    couriermlm - Die Kurier-Mailingliste
    Manager ...
    Führen Sie couriermlm aus
  • 4
    couriertcpd
    couriertcpd
    couriertcpd - der Mailserver von Courier
    TCP-Server-Daemon ...
    Führen Sie couriertcpd aus
  • 5
    gbklatex
    gbklatex
    bg5latex - Verwenden Sie LaTeX direkt auf einem Big5
    codierte tex-Datei bg5pdflatex - Verwenden
    pdfLaTeX direkt auf einem Big5-codierten Text
    file bg5+latex - Verwenden Sie LaTeX direkt auf a
    Big5+...
    Führen Sie gbklatex aus
  • 6
    gbkpdflatex
    gbkpdflatex
    bg5latex - Verwenden Sie LaTeX direkt auf einem Big5
    codierte tex-Datei bg5pdflatex - Verwenden
    pdfLaTeX direkt auf einem Big5-codierten Text
    file bg5+latex - Verwenden Sie LaTeX direkt auf a
    Big5+...
    Führen Sie gbkpdflatex aus
  • Mehr »

Ad