זהו הפקודה genxs שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
genxs - מחולל Xml Serializer של Mono
תַקצִיר
genxs ConfigurationFile [destinationFolder]
תיאור
genxs הוא כלי להפקת כותבי וקוראים להסדרת XML מותאמים אישית עבור שיעורים.
קובץ תצורה הוא קובץ תצורה המציין מספר מידע, כגון
כיתה שעבורה ניתן ליצור את הקורא והכותב, השם ומרחב השמות של השיעורים
ליצור, ואוסף של ווים ליישום. באמצעות ווים אפשר
התאם אישית את ההתנהגות של המסדרת מבלי צורך לשנות את הקובץ שנוצר, אז
אתה יכול ליצור אותו מחדש בבטחה אם מחלקת המקור תשתנה.
תיקיית יעד מציין את התיקיה שבה ייווצרו הקבצים.
הערה: כלי זה פועל רק בזמן ריצה מונו, מכיוון שהוא משתמש בכמה מחלקות פנימיות שלא
זמין בזמני ריצה אחרים.
תְצוּרָה קובץ פורמט
קובץ התצורה הוא מסמך XML המבוסס על הדקדוק הבא ("?" פירושו
אופציונלי, "*" 0 או יותר):
*
שֵׁם ?
שֵׁם ?
שֵׁם ?
שֵׁם ?
?
*
?
*
קובץ תצורה יכול לכלול מספר רכיבי "מסדרת", שכל אחד מהם מציין את
מחלקה שעבורה ניתן ליצור סדרה יחד עם מספר אפשרויות דור. ה
מחלקת המקור מצוינת בתכונות הבאות:
* בכיתה : שם המחלקה (כולל מרחב שמות).
* הרכבה : שם הרכבה. זה יכול לכלול את הנתיב המלא.
אפשרויות היצירה מצוינות ברכיבי צאצא:
* קורא : שם כיתת הקוראים.
* noReader : אם "נכון", זה לא יוצר מחלקה קורא.
* סופר : שם כיתת הסופר.
* baseSerializer : שם מחלקת ה-xml serializer הבסיסית. פריט זה הוא 2.0 בלבד.
* הפעלה : שם מחלקת היישום של סריאליזר. פריט זה הוא 2.0 בלבד.
* noWriter : אם "נכון", זה לא מייצר כיתה סופר.
* מרחב שמות : מרחב השמות של כיתות הקורא והסופר.
* generAsInternal : אם "נכון", זה יוצר מחלקות כפנימיות.
* outFileName : שם הקובץ שנוצר.
* ReaderHooks : רשימה של ווים ליישום על הקורא.
* writerHooks : רשימה של ווים להחיל על הסופר.
מפרט צעקות
באמצעות ווים ניתן להתאים אישית את התנהגות הקוראים והכותבים. מפרט וו
עוקב אחר הדקדוק הזה:
?
שֵׁם ?
שֵׁם *
שֵׁם ?
קוד מקור ?
קוד מקור ?
קוד מקור ?
התכונה "סוג" מציינת את ההקשר שבו מוחל הקרס. זה יכול להיות אחד מהם
הבא:
* תכונות : הוק מוחל כאשר תכונות מסודרות/מפותרות בהמשכה.
* אלמנטים : הוק מוחל במקום שבו אלמנטים מסודרים/מפירים.
* תכונה לא ידועה : הוק מוחל במקום שבו מעובדות תכונות לא ידועות.
* אלמנט לא ידוע : הוק מוחל במקום שבו מעובדים אלמנטים לא ידועים.
* חבר : הוק מוחל כאשר חבר מסודר/מבוזר בסידרה.
* סוג : וו מוחל על כל הסוג.
האלמנט "בחר" מציין את המחלקות והאיברים שאליהם יש להוסיף את ה-hook.
זה יכול להכיל את האלמנטים הבאים:
* סוג שם : הכיתה עם השם הזה תיבחר (חייב לכלול מרחב שמות)
* typeAttribute : כל המחלקות שתכונה זו הושמה ייבחרו
(ציין את שם המחלקה המלא של התכונה, כולל מרחב שמות). מספר שמות של תכונות
ניתן לפרט.
* typeMember : שם חבר הכיתה שעבורו יש להוסיף את הוו.
ניתן לציין את קוד המקור Hook באמצעות כל אחד מהאלמנטים הבאים:
* להחליף : קוד המקור שסופק יחליף את כל ההסדרה/דה-סידריאליזציה
פעולות בהקשר להוק.
* insertFore : קוד המקור יתווסף לפני ההקשר של hook.
* הכנס לאחר : קוד המקור יתווסף לאחר ההקשר של ה-hook.
בעת כתיבת הקוד עבור הוק ניתן להשתמש בכמה משתנים מיוחדים המוגדרים
במהלך תהליך יצירת הקוד. המשתנים הם הבאים:
* $TYPE: שם המחלקה שנוצרת, ללא מרחב שמות.
* $FULLTYPE: השם המלא של המחלקה שנוצרת, כולל מרחב שמות.
* $OBJECT: האובייקט המועבר בסידרה או בהורדת הרצף. בעת שימוש בקורא החלפה
הוק מסוג "טיפוס", קוד ה-hook חייב להקצות לזה את האובייקט המרוסק
משתנה
* -I $ELEMENT: שם האלמנט של האובייקט המועבר בסידרה/דה-סידור.
* $NAMESPACE: מרחב השמות של אלמנט האובייקט המועבר בסידרה/דה-סידור.
* $MEMBER: שם החבר המועבר בסידרה/הסידור. תקף רק ב"חבר"
ההקשר.
וו דוגמאות
הדוגמה הבאה מוסיפה קריאה לשיטת Validate לאחר דה-סידריאליזציה של כל אחת
אובייקט:
System.Xml.Schema.XmlSchema.Validate$TYPE ($OBJECT);
דוגמה זו מציינת את הקוד שישמש לביטול הסדרת מחלקה XmlSchema:
System.Xml.Schema.XmlSchema
$OBJECT = System.Xml.Schema.XmlSchema.Read (Reader, null);
זה מציין את הקוד שישמש לקריאת מופעי XmlSchema:
System.Xml.Schema.XmlSchema
$OBJECT.Write (סופר);
עם שני ווים אלה, ה- Serializer ידפיס קצת מידע בעת ביצוע סדרה של המחלקה
"הכיתה שלי":
MyNamespace.MyClass
Console.WriteLine ("מסדרת MyClass");
Console.WriteLine ("MyClass בסידרה");
MyNamespace.MyClass
Console.WriteLine ("חבר בסידרה $MEMBER");
הוק זה כותב אלמנט נוסף עבור כל הסוגים שיש להם את התכונה המותאמת אישית
"MyAttribute":
MyNamespace.MyAttribute
Writer.WriteStartElement ("privateData");
Writer.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement ();
תְצוּרָה קובץ דוגמא
זהו קובץ התצורה המשמש ליצירת ה-serializer עבור ServiceDescription:
ServiceDescriptionReaderBase
ServiceDescriptionWriterBase
מערכת.שירותי.אינטרנט.תיאור
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 (סופר, $OBJECT);
System.Xml.Schema.XmlSchema
$OBJECT.Write (סופר);
מחברים
לואיס סאנצ'ז גואל ([מוגן בדוא"ל])
השתמש ב-genxs באינטרנט באמצעות שירותי onworks.net