Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden çok ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut türleridir.
Program:
ADI
genxs - Mono'nun Xml Serileştirici Üreticisi
SİNOPSİS
genx'ler konfigürasyonDosyası [hedefKlasör]
TANIM
genx'ler sınıflar için özel XML serileştirme yazarları ve okuyucuları oluşturmak için bir araçtır.
yapılandırma dosyası gibi çeşitli bilgileri belirten yapılandırma dosyasıdır.
okuyucu ve yazar oluşturulacak sınıf, sınıfların adı ve ad alanı
oluşturmak ve uygulamak için bir kanca koleksiyonu. Kancaları kullanarak şunları yapmak mümkündür:
oluşturulan dosyayı değiştirmeye gerek kalmadan seri hale getiricinin davranışını özelleştirin;
kaynak sınıf değiştirilirse güvenle yeniden oluşturabilirsiniz.
Hedef klasör dosyaların oluşturulacağı klasörü belirtir.
NOT: Bu araç yalnızca Mono çalışma zamanında çalışır, çünkü bazı dahili sınıfları kullanmaz.
diğer çalışma zamanlarında kullanılabilir.
YAPILANDIRMA DOSYA FORMAT
Yapılandırma dosyası, aşağıdaki dilbilgisine dayalı bir xml belgesidir ("?" anlamına gelir.
isteğe bağlı, "*" 0 veya daha fazla):
*
isim ?
isim ?
isim ?
isim ?
?
*
?
*
Bir yapılandırma dosyası, her biri aşağıdakileri belirten birden çok "serileştirici" öğeye sahip olabilir.
birkaç oluşturma seçeneğiyle birlikte bir seri hale getirici oluşturulacak sınıf. NS
kaynak sınıf aşağıdaki niteliklerde belirtilir:
* sınıf : sınıfın adı (ad alanı dahil).
* montaj : derleme adı. Tam yolu içerebilir.
Oluşturma seçenekleri alt öğelerde belirtilir:
* okuyucu : okuyucu sınıfının adı.
* noOkuyucu : "true" ise, okuyucu sınıfı oluşturmaz.
* yazar : yazar sınıfının adı.
* bazSerileştirici : temel xml serileştirici sınıfının adı. Bu öğe yalnızca 2.0'dır.
* uygulama : seri hale getirici uygulama sınıfının adı. Bu öğe yalnızca 2.0'dır.
* noYazar : "true" ise, yazar sınıfı oluşturmaz.
* ad : okuyucu ve yazar sınıflarının ad alanı.
* createAsInternal : "true" ise, sınıfları dahili olarak oluşturur.
* outDosyaAdı : oluşturulan dosyanın adı.
* okuyucu Kancalar : okuyucuya uygulanacak kancaların listesi.
* yazarkancalar : yazara uygulanacak kancaların listesi.
BELİRTİLEN KANCALAR
Kancaları kullanarak okuyucuların ve yazarların davranışlarını özelleştirebilirsiniz. Bir kanca özelliği
bu grameri takip eder:
?
isim ?
isim *
isim ?
kaynak kodu ?
kaynak kodu ?
kaynak kodu ?
"type" özelliği, kancanın uygulandığı bağlamı belirtir. biri olabilir
şu:
* öznitelikleri : kanca, özniteliklerin serileştirildiği/seri hale getirildiği durumlarda uygulanır.
* elemanları : kanca, öğelerin serileştirildiği/seri hale getirildiği durumlarda uygulanır.
* BilinmeyenÖzellik : kanca, bilinmeyen niteliklerin işlendiği yere uygulanır.
* bilinmeyenElement : kanca, bilinmeyen elemanların işlendiği yerlere uygulanır.
* üye : kanca, bir üyenin serileştirildiği/seri hale getirildiği durumlarda uygulanır.
* tip : Tüm tip için kanca uygulanır.
"select" öğesi, kancanın eklenmesi gereken sınıfları ve üyeleri belirtir.
Aşağıdaki unsurları içerebilir:
* türAdı : bu ada sahip sınıf seçilecektir (ad alanını içermelidir)
* tür özniteliği : bu özelliğin uygulandığı tüm sınıflar seçilecektir.
(ad alanı dahil olmak üzere tam öznitelik sınıfı adını belirtin). Birkaç özellik adı
belirtilebilir.
* tipÜye : kancanın eklenmesi gereken sınıf üyesinin adı.
Kanca kaynak kodu, aşağıdaki öğelerden herhangi biri kullanılarak belirtilebilir:
* değiştirmek : sağlanan kaynak kodu tüm serileştirme/seri hale getirmenin yerini alacak
kanca bağlamındaki işlemler.
* EkleÖnce : kaynak kodu, kanca bağlamından önce eklenecektir.
* ekleSonra : kaynak kodu, kanca bağlamından sonra eklenecektir.
Bir kanca için kod yazarken, tanımlanmış bazı özel değişkenleri kullanabilirsiniz.
kod oluşturma işlemi sırasında. Değişkenler şunlardır:
* $TÜRÜ: ad alanı olmadan oluşturulan sınıfın adı.
* $TAM TÜR: ad alanı da dahil olmak üzere, oluşturulan sınıfın tam adı.
* $ NESNE: nesnenin serileştirilmesi veya seri hale getirilmesi. Bir değiştirme okuyucusu kullanırken
"type" tipi kanca, kanca kodu, seri durumdan çıkarılmış nesneyi buna atamalıdır.
değişkeni.
* -I $ELEMENT: seri hale getirilen/seri hale getirilen nesnenin öğesinin adı.
* $NAMESPACE: seri hale getirilen/seri hale getirilen nesnenin öğesinin ad alanı.
* $ÜYE: seri hale getirilen/seri hale getirilen üyenin adı. Yalnızca "üye" içinde geçerlidir
bağlamı.
KANCA ÖRNEKLER
Aşağıdaki örnek, herhangi bir yöntemin seri durumdan çıkarılmasından sonra bir Validate yöntemine bir çağrı ekler.
nesne:
System.Xml.Schema.XmlSchema.Validate$TYPE ($OBJECT);
Bu örnek, XmlSchema sınıfını seri durumdan çıkarmak için kullanılacak kodu belirtir:
System.Xml.Schema.XmlSchema
$OBJECT = System.Xml.Schema.XmlSchema.Read (Okuyucu, boş);
Bu, XmlSchema örneklerini okumak için kullanılacak kodu belirtir:
System.Xml.Schema.XmlSchema
$OBJECT.Write (Yazar);
Bu iki kanca ile serileştirici, sınıfı serileştirirken bazı bilgileri yazdıracaktır.
"Sınıfım":
MyNamespace.MyClass
Console.WriteLine ("Sınıfımı Serileştirme");
Console.WriteLine ("Sınıfım seri hale getirildi");
MyNamespace.MyClass
Console.WriteLine ("Serileştirilmiş üye $ÜYE");
Bu kanca, özel özniteliğe sahip tüm türler için ek bir öğe yazar.
"Özelliğim":
MyNamespace.MyAttribute
Writer.WriteStartElement ("privateData");
Writer.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement();
YAPILANDIRMA DOSYA ÖRNEK
Bu, ServiceDescription için seri hale getirici oluşturmak için kullanılan yapılandırma dosyasıdır:
ServisAçıklamaOkuyucuTemel
HizmetAçıklamaYazarTabanı
System.Web.Services.Description
ServiceDescriptionSerializerBase.cs
System.Web.Services.Configuration.XmlFormatExtensionPointAttribute
ServiceDescription.ReadExtension (Okuyucu, $OBJECT);
System.Xml.Schema.XmlSchema
$OBJECT = System.Xml.Schema.XmlSchema.Read (Reader, null);
System.Web.Services.Configuration.XmlFormatExtensionPointAttribute
ServiceDescription.WriteExtensions (Yazar, $OBJECT);
System.Xml.Schema.XmlSchema
$OBJECT.Write (Yazar);
YAZARLAR
Lluis Sanchez Gual ([e-posta korumalı])
onworks.net hizmetlerini kullanarak genx'leri çevrimiçi kullanın