המרת XAML ל BAML
-
בעת הידור פרויקט WPF בVisual Studio קבצי הXSML מומרים לקבצים בינריים - BAML.
פורסם במקור בפורום CODE613 ב17/03/2014 12:49 (+02:00)
-
אכן כך, וראיתי מישהו שכתב קוד שממיר XAML ל BAML עם VS.
אולם זה מתאים רק אם יש לך את ה XAML עם כל הקבצים שנלוים אליו כמו קבצי CS או VB ואז VS יכול לקמפל את זה בלא שגיאות אבל אם זה קובץ בודד של XAML הוא לא יתקמפל, אבל אני צריך להפוך אותו ל BAML על פי הנוסחה שתמיד מקמפלים XAML בלא להתחשב שיש שם טיפוסים לא ידועים בגלל שחסר קבצי CS. פשוט נוסחה שתלך תג אחרי תג וערך אחרי ערך ותמיר את ה XAML לתחביר הבינארי של BAML.פורסם במקור בפורום CODE613 ב17/03/2014 14:17 (+02:00)
-
כאן מצאתי קוד הממיר BAML לXMAL. אם יש לך כח וזמן תוכל להופכו.
פורסם במקור בפורום CODE613 ב17/03/2014 17:27 (+02:00)
-
תודה רבה!
כעת בזכותך גיליתי שקרוב הדבר אלי מאוד...
הרי ILSPY הוא בקוד פתוח ויש לי מזמן את כולו ואני עובד איתו רק לא שמתי לב שיש שם את הכל... :lol:
יש שם הרבה דברים נפלאים למשל דבר כזה:BAML format description A BAML stream consists of a header and sequential records that contain the data. The Header The header is 28 bytes long. The first four bytes are a little endian integer containing the length of the preamble in bytes. The preamble is the UTF-16 string "MSBAML", followed by three integers with the value 0x60000. Record format: In general a record consists of a type byte and its content. Some records also have a field, following the type byte, containing the remaining length of the record, encoded as 7-bit encoded integer. Record Types: DocumentStart (= 0x01): The document start (after the type byte) is 6 Bytes long. Usually 00 FF FF FF FF 00. These bytes can be safely ignored. AssemblyInfo (= 0xC1): The length field is followed by a 2 byte long ID. The ID is followed by a string containing the assembly name.
פורסם במקור בפורום CODE613 ב17/03/2014 18:47 (+02:00)