genxs - Online di Cloud

Ini adalah perintah genx yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

PROGRAM:

NAMA


genxs - Generator Serializer Xml Mono

RINGKASAN


genx file konfigurasi [folder tujuan]

DESKRIPSI


genx adalah alat untuk menghasilkan penulis dan pembaca serialisasi XML khusus untuk kelas.

file konfigurasi adalah file konfigurasi yang menentukan beberapa informasi, seperti:
kelas yang menghasilkan pembaca dan penulis, nama dan ruang nama kelas
untuk menghasilkan, dan kumpulan kait untuk diterapkan. Dengan menggunakan kait dimungkinkan untuk
sesuaikan perilaku serializer tanpa perlu memodifikasi file yang dihasilkan, jadi
anda dapat membuat ulang dengan aman jika kelas sumber dimodifikasi.

folder tujuan menentukan folder tempat file akan dibuat.

CATATAN: Alat ini hanya berjalan di runtime Mono, karena tidak menggunakan beberapa kelas internal
tersedia di runtime lainnya.

KONFIGURASI FILE FORMAT


File konfigurasi adalah dokumen xml berdasarkan tata bahasa berikut ("?" berarti
opsional, "*" 0 atau lebih):


*
nama ?
nama ?
nama ?
nama ?
?
*

?
*




File konfigurasi dapat memiliki beberapa elemen "serializer", yang masing-masing menentukan:
kelas yang menghasilkan serializer bersama dengan beberapa opsi generasi. NS
kelas sumber ditentukan dalam atribut berikut:

* kelas : nama kelas (termasuk namespace).

* majelis : nama perakitan. Ini dapat mencakup jalur lengkap.

Opsi generasi ditentukan dalam elemen turunan:

* pembaca : nama kelas pembaca.

* tidak ada Pembaca : jika "benar", itu tidak menghasilkan kelas pembaca.

* penulis : nama kelas penulis.

* dasarSerializer : nama kelas serializer xml dasar. Item ini hanya 2.0.

* implementasi : nama kelas implementasi serializer. Item ini hanya 2.0.

* tidak ada penulis : jika "benar", itu tidak menghasilkan kelas penulis.

* namespace : namespace dari kelas pembaca dan penulis.

* hasilkan sebagai Internal : jika "benar", itu menghasilkan kelas sebagai internal.

* keluarNamaFile : nama file yang dihasilkan.

* pembacaHooks : daftar kait untuk diterapkan pada pembaca.

* penulisHooks : daftar kait untuk diterapkan pada penulis.

SPESIFIKASI KAIT


Menggunakan kait Anda dapat menyesuaikan perilaku pembaca dan penulis. Spesifikasi kait
mengikuti tata bahasa ini:


?
nama ?
nama *
nama ?

Kode sumber ?
Kode sumber ?
Kode sumber ?


Atribut "type" menentukan konteks di mana hook diterapkan. Ini bisa menjadi salah satu
berikut:

* atribut : hook diterapkan di mana atribut diserialisasi/diserialisasi.

* elemen : hook diterapkan di mana elemen diserialisasi/diserialisasi.

* tidak diketahui Atribut : hook diterapkan di mana atribut yang tidak diketahui diproses.

* tidak diketahuiElemen : hook diterapkan di mana elemen yang tidak diketahui diproses.

* anggota : hook diterapkan di mana anggota diserialisasi/diserialisasi.

* mengetik : hook diterapkan untuk seluruh jenis.

Elemen "select" menentukan kelas dan anggota yang akan ditambahkan hook.
Itu dapat berisi elemen-elemen berikut:

* ketik nama : kelas dengan nama itu akan dipilih (harus menyertakan namespace)

* typeAttribute : semua kelas yang memiliki atribut yang diterapkan akan dipilih
(tentukan nama kelas atribut lengkap, termasuk namespace). Beberapa nama atribut
dapat ditentukan.

* tipeAnggota : nama anggota kelas yang kaitnya harus ditambahkan.

Kode sumber kait dapat ditentukan menggunakan salah satu elemen berikut:

* menggantikan : kode sumber yang disediakan akan menggantikan semua serialisasi/deserialisasi
operasi dalam konteks hook.

* masukkanSebelum : kode sumber akan ditambahkan sebelum konteks kait.

* masukkanSetelah : kode sumber akan ditambahkan setelah konteks kait.

Saat menulis kode untuk sebuah kait, Anda dapat menggunakan beberapa variabel khusus yang ditentukan
selama proses pembuatan kode. Variabelnya adalah sebagai berikut:

* $JENIS: nama kelas yang dihasilkan, tanpa namespace.

* $ JENIS LENGKAP: nama lengkap kelas yang dihasilkan, termasuk namespace.

* $OBJEK: objek yang diserialisasikan atau dideserialisasi. Saat menggunakan pembaca pengganti
kait tipe "tipe", kode kait harus menetapkan objek deserialized untuk ini
variabel.

* -I $ELEMENT: nama elemen objek yang sedang diserialisasi/diserialisasi.

* $NAMESPACE: namespace dari elemen objek yang diserialisasi/diserialisasi.

* $ANGGOTA: nama anggota yang diserialisasikan/diserialisasi. Hanya berlaku di "anggota"
konteks.

HOOK CONTOH


Contoh berikut menambahkan panggilan ke metode Validasi setelah deserialization dari setiap
obyek:



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



Contoh ini menentukan kode yang akan digunakan untuk deserialize kelas XmlSchema:



System.Xml.Schema.XmlSchema


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



Yang itu menentukan kode yang akan digunakan untuk membaca instance XmlSchema:



System.Xml.Schema.XmlSchema

$OBJECT.Tulis (Penulis);


Dengan dua kait ini, pembuat serial akan mencetak beberapa informasi saat membuat serial kelas
"Kelasku":



MyNamespace.MyClass

Console.WriteLine("Serializing MyClass");
Console.WriteLine ("Kelas Saya diserialisasi");



MyNamespace.MyClass


Console.WriteLine("Anggota serial $MEMBER");



Kait ini menulis elemen tambahan untuk semua jenis yang memiliki atribut khusus
"Atribut Saya":



MyNamespace.MyAttribute


Writer.WriteStartElement("data pribadi");
Penulis.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement();



KONFIGURASI FILE CONTOH


Ini adalah file konfigurasi yang digunakan untuk membuat serializer untuk ServiceDescription:



ServiceDescriptionReaderBase
LayananDeskripsiWriterBase
Sistem.Web.Layanan.Deskripsi
ServiceDescriptionSerializerBase.cs



System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.ReadExtension (Pembaca, $OBJECT);



System.Xml.Schema.XmlSchema

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





System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.WriteExtensions (Penulis, $OBJECT);



System.Xml.Schema.XmlSchema

$OBJECT.Tulis (Penulis);





PENULIS


Lluis Sanchez Gua (lluis@ximian.com)

Gunakan genxs online menggunakan layanan onworks.net



Program online Linux & Windows terbaru