นี่คือคำสั่ง genxs ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
genxs - Xml Serializer Generator ของ Mono
เรื่องย่อ
Genx configurationFile [โฟลเดอร์ปลายทาง]
DESCRIPTION
Genx เป็นเครื่องมือสำหรับสร้างตัวเขียนและผู้อ่านซีเรียลไลซ์เซชัน XML แบบกำหนดเองสำหรับชั้นเรียน
ไฟล์คอนฟิกูเรชัน เป็นไฟล์ configuration ซึ่งระบุข้อมูลหลายอย่าง เช่น the
คลาสที่จะสร้างตัวอ่านและตัวเขียน ชื่อและเนมสเปซของคลาส
เพื่อสร้างและรวบรวมตะขอที่จะใช้ โดยการใช้ขอเกี่ยว สามารถทำได้
ปรับแต่งพฤติกรรมของ serializer โดยไม่ต้องแก้ไขไฟล์ที่สร้างขึ้นดังนั้น
คุณสามารถสร้างใหม่ได้อย่างปลอดภัยหากมีการแก้ไขคลาสต้นทาง
โฟลเดอร์ปลายทาง ระบุโฟลเดอร์ที่จะสร้างไฟล์
หมายเหตุ: เครื่องมือนี้ทำงานเฉพาะในรันไทม์ Mono เนื่องจากใช้บางคลาสภายในไม่ใช่
พร้อมใช้งานในรันไทม์อื่น
การกำหนดค่า ไฟล์ FORMAT
ไฟล์การกำหนดค่าเป็นเอกสาร xml ตามไวยากรณ์ต่อไปนี้ ("?" หมายถึง
ไม่บังคับ "*" 0 หรือมากกว่า):
*
ชื่อ ?
ชื่อ ?
ชื่อ ?
ชื่อ ?
?
*
?
*
ไฟล์คอนฟิกูเรชันสามารถมีองค์ประกอบ "serializer" ได้หลายตัว ซึ่งแต่ละองค์ประกอบจะระบุ
คลาสสำหรับสร้างซีเรียลไลเซอร์พร้อมกับตัวเลือกรุ่นต่างๆ NS
คลาสซอร์สถูกระบุในแอตทริบิวต์ต่อไปนี้:
* ชั้น : ชื่อของคลาส (รวมถึงเนมสเปซ)
* การชุมนุม : ชื่อการประกอบ มันสามารถรวมเส้นทางที่สมบูรณ์
ตัวเลือกการสร้างระบุไว้ในองค์ประกอบย่อย:
* ผู้อ่าน : ชื่อคลาสนักอ่าน
* ไม่มีรีดเดอร์ : ถ้า "จริง" จะไม่สร้างคลาสผู้อ่าน
* นักเขียน : ชื่อคลาสนักเขียน
* ฐานSerializer : ชื่อของคลาสตัวสร้างอนุกรม xml พื้นฐาน รายการนี้เป็น 2.0 เท่านั้น
* การดำเนินงาน : ชื่อของคลาสการปรับใช้ซีเรียลไลเซอร์ รายการนี้เป็น 2.0 เท่านั้น
* ไม่มีนักเขียน : ถ้า "จริง" จะไม่สร้างคลาสนักเขียน
* namespace : เนมสเปซของคลาสผู้อ่านและนักเขียน
* สร้างAsInternal : ถ้า "จริง" จะสร้างคลาสภายใน
* ชื่อไฟล์ออก : ชื่อของไฟล์ที่สร้างขึ้น
* ผู้อ่านHooks : รายการขอเกี่ยวสำหรับผู้อ่าน
* นักเขียนHooks : รายการขอเกี่ยวสำหรับนักเขียน
การระบุ เบ็ด
การใช้ hooks คุณสามารถปรับแต่งพฤติกรรมของผู้อ่านและนักเขียนได้ สเปคของเบ็ด
ตามไวยากรณ์นี้:
?
ชื่อ ?
ชื่อ *
ชื่อ ?
รหัสแหล่งที่มา ?
รหัสแหล่งที่มา ?
รหัสแหล่งที่มา ?
แอตทริบิวต์ "ประเภท" ระบุบริบทที่ใช้เบ็ด สามารถเป็นหนึ่งใน
ต่อไปนี้:
* แอตทริบิวต์ : มีการใช้ hook เมื่อแอตทริบิวต์ถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์
* องค์ประกอบ : มีการใช้ hook เมื่อองค์ประกอบถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์
* แอตทริบิวต์ที่ไม่รู้จัก : hook ถูกนำไปใช้ในการประมวลผลแอตทริบิวต์ที่ไม่รู้จัก
* ไม่ทราบธาตุ : hook ถูกนำไปใช้ในการประมวลผลองค์ประกอบที่ไม่รู้จัก
* สมาชิก : hook ถูกใช้เมื่อสมาชิกถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์
* ชนิด : ตะขอใช้สำหรับทั้งแบบ
องค์ประกอบ "select" ระบุคลาสและสมาชิกที่ต้องการเพิ่ม hook
สามารถประกอบด้วยองค์ประกอบต่อไปนี้:
* พิมพ์ชื่อ : คลาสที่มีชื่อนั้นจะถูกเลือก (ต้องมีเนมสเปซ)
* ประเภทแอตทริบิวต์ : ทุกคลาสที่มีแอ็ตทริบิวต์นั้นจะถูกเลือก
(ระบุชื่อคลาสแอตทริบิวต์แบบเต็ม รวมถึงเนมสเปซ) ชื่อแอตทริบิวต์หลายชื่อ
สามารถระบุได้
* ประเภทสมาชิก : ชื่อของสมาชิกคลาสที่ต้องเพิ่ม hook
ซอร์สโค้ดของ hook สามารถระบุได้โดยใช้องค์ประกอบต่อไปนี้:
* แทนที่ : ซอร์สโค้ดที่ให้มาจะแทนที่การทำให้เป็นอนุกรม/ดีซีเรียลไลเซชันทั้งหมด
การดำเนินการในบริบทของเบ็ด
* แทรกก่อน : ซอร์สโค้ดจะถูกเพิ่มก่อนบริบทของ hook
* แทรกหลัง : ซอร์สโค้ดจะถูกเพิ่มหลังจากบริบทของ hook
เมื่อเขียนโค้ดสำหรับ hook คุณสามารถใช้ตัวแปรพิเศษที่กำหนดได้
ระหว่างขั้นตอนการสร้างโค้ด ตัวแปรดังต่อไปนี้:
* $ประเภท: ชื่อของคลาสที่ถูกสร้างขึ้น โดยไม่มีเนมสเปซ
* $ประเภทเต็ม: ชื่อเต็มของคลาสที่กำลังสร้าง รวมถึงเนมสเปซ
* $วัตถุ: วัตถุที่ถูกทำให้เป็นอนุกรมหรือดีซีเรียลไลซ์ เมื่อใช้เครื่องอ่านแทน
เบ็ดประเภท "ประเภท" รหัสของเบ็ดต้องกำหนดวัตถุดีซีเรียลไลซ์ให้กับสิ่งนี้
ตัวแปร
* -I $ELEMENT: ชื่อขององค์ประกอบของวัตถุที่ถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์
* $NAMESPACE: เนมสเปซขององค์ประกอบของอ็อบเจ็กต์ที่กำลังถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์
* สมาชิก $MEMBER: ชื่อของสมาชิกที่กำลังถูกทำให้เป็นอนุกรม/ดีซีเรียลไลซ์ ใช้ได้เฉพาะใน "สมาชิก"
บริบท.
ตะขอ ตัวอย่าง
ตัวอย่างต่อไปนี้จะเพิ่มการเรียกไปยังเมธอด Validate หลังจากการดีซีเรียลไลเซชันของ any
วัตถุ:
System.Xml.Schema.XmlSchema.Validate$TYPE ($OBJECT); System.Xml.Schema.XmlSchema.Validate$TYPE (วัตถุ);
ตัวอย่างนี้ระบุรหัสที่จะใช้ในการดีซีเรียลไลซ์คลาส XmlSchema:
System.Xml.Schema.XmlSchema
$OBJECT = System.Xml.Schema.XmlSchema.Read (ผู้อ่าน, null);
อันนั้นระบุรหัสที่จะใช้เพื่ออ่านอินสแตนซ์ XmlSchema:
System.Xml.Schema.XmlSchema
$OBJECT.Write (นักเขียน);
ด้วยตะขอสองตัวนี้ serializer จะพิมพ์ข้อมูลบางอย่างเมื่อทำให้เป็นอนุกรมคลาส
"ห้องเรียนของฉัน":
MyNamespace.MyClass
Console.WriteLine ("การทำให้เป็นอนุกรม MyClass");
Console.WriteLine ("MyClass ต่อเนื่อง");
MyNamespace.MyClass
Console.WriteLine ("สมาชิกที่เป็นอนุกรม $MEMBER");
เบ็ดนี้เขียนองค์ประกอบเพิ่มเติมสำหรับทุกประเภทที่มีแอตทริบิวต์ที่กำหนดเอง
"แอตทริบิวต์ของฉัน":
MyNamespace.MyAttribute
Writer.WriteStartElement ("ข้อมูลส่วนตัว");
Writer.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement ();
การกำหนดค่า ไฟล์ ตัวอย่าง
นี่คือไฟล์คอนฟิกูเรชันที่ใช้สร้างซีเรียลไลเซอร์สำหรับ ServiceDescription:
ServiceDescriptionReaderBase
ServiceDescriptionWriterBase
System.Web.Services.Description
ServiceDescriptionSerializerBase.cs
System.Web.Services.Configuration.XmlFormatExtensionPointAttribute
ServiceDescription.ReadExtension (ผู้อ่าน, $OBJECT);
System.Xml.Schema.XmlSchema
$OBJECT = System.Xml.Schema.XmlSchema.Read (ผู้อ่าน, null);
System.Web.Services.Configuration.XmlFormatExtensionPointAttribute
ServiceDescription.WriteExtensions (นักเขียน $OBJECT);
System.Xml.Schema.XmlSchema
$OBJECT.Write (นักเขียน);
ผู้เขียน
ลุยส์ ซานเชซ กัล ([ป้องกันอีเมล])
ใช้ genxs ออนไลน์โดยใช้บริการ onworks.net