XmlSerializer and \r\n

יום ראשון, אוקטובר 28, 2012

נניח שיש לכם קוד שיודע לקחת אובייקטים ולשפוך אותם לקובץ xml. private static void Serialize() {     Message messages =     {         new Message(){Id = 1, Text = "Shlomo Goldberg"},         new Message(){Id = 2, Text = "abcdefg\r\n12345678"}, ...
תגיות: , ,
אין תגובות

Line Number with XmlReader

יום ראשון, יוני 10, 2012

במידה ואתם משתמשים ב – XmlReader כדי לקרוא נתונים מקובץ xml, לפעמים אתם רוצים לדעת את מספר השורה בו אתם נמצאים כרגע – למשל עבור רישום ללוג וכד'.   תוכלו להריץ את הקוד הבא:     XmlReader reader = XmlReader.Create("xmlfile1.xml");       IXmlLineInfo lineInfo = (IXmlLineInfo)reader;     while (reader.Read()) ...
תגיות: , ,
אין תגובות

XmlSerializable and System.Drawing.Color

יום ראשון, פברואר 19, 2012

  יצא לי לכתוב מחלקה שנראית כך:   public struct EnviormentColor {     public string Name { get; set; }     public Color ForeColor { get; set; }     public Color BackColor { get; set; } }   כפי שאפשר לראות המבנה מכיל שם ושני צבעים (צבע רקע וצבע פונט).   כעת היה לי מערך של המבנה הזה, ניסיתי להפעיל עליו את מנגנון הסיראליזציה של xml, בצורה הבאה:   XmlSerializer serializer = new XmlSerializer(typeof(List<EnviormentColor>)); serializer.Serialize(File.OpenWrite("colors.xml"), list);   כעת קרה דבר מעניין, כך נראתה התוצאה:     <?xml version="1.0"?> <ArrayOfEnviormentColor>   <EnviormentColor>     <Name>Shlomo</Name>     <ForeColor />     <BackColor />   </EnviormentColor>   <EnviormentColor>     <Name>Noam</Name>     <ForeColor />     <BackColor />   </EnviormentColor>   <EnviormentColor>     <Name>Yossi</Name>     <ForeColor />     <BackColor />   </EnviormentColor>   <EnviormentColor>  ...
תגיות: , ,
תגובה אחת

RSS and ATOM Reader in C#

יום שבת, פברואר 5, 2011

  כתבתי כיצד לייצר ב - WCF תוכן בפורמט RSS או ATOM.   מסתבר שלפעמים אנחנו צריכים גם לקרוא תוכן בפורמט RSS או ATOM בלי שום קשר ל - WCF, אבל היות שכבר יש את כל המחלקות אז למה לא להשתמש בהם, כל מה שצריך לעשות זה להוסיף reference ל - System.ServiceModel ולכתוב קוד כזה:     Rss20FeedFormatter rss20 = new Rss20FeedFormatter(); XmlReader reader = XmlReader.Create("http://blogs.microsoft.co.il/blogs/shlomo/rss.aspx"); rss20.ReadFrom(reader);       או קוד כזה (ל - ATOM)     Atom10FeedFormatter atom = new Atom10FeedFormatter(); XmlReader reader = XmlReader.Create("http://blogs.microsoft.co.il/blogs/shlomo/atom.aspx"); atom.ReadFrom(reader);       וכמובן ניתן לקרוא את כל התוכן בצורה קלה מבלי צורך להתחיל לפרק את ה - xml או להשתמש בקוד חיצוני אחר.
תגיות: , ,
אין תגובות

TreeView and XmlDataSource

יום חמישי, פברואר 25, 2010

  נניח שרוצים לקשר בין TreeView לבין קובץ xml   נקח לדוגמא את קובץ שערי המטבעות מבנק ישראל (שאפשר גם לעבוד איתו מקוד)   ונרצה להציג אותו ב - Tree   כשנכתוב קוד כזה   <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1"> </asp:TreeView>   <asp:XmlDataSource ID="XmlDataSource1" runat="server"     DataFile="~/currency.xml"></asp:XmlDataSource>     נקבל תוצאה כזאת       כלומר נקבל את המבנה ולא את המידע בעצמו.   כדי לפתור את זה נצטרך להוסיף Binding ל - TreeView   הכי קל זה בעזרת ה - Designer           נוסיף את המאפיינים שאנחנו רוצים לראות ונבחר ב - TextField את הערך המתאים.   בסופו של דבר נקבל   <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">     <DataBindings>         <asp:TreeNodeBinding DataMember="NAME" TextField="#InnerText" />         <asp:TreeNodeBinding DataMember="UNIT" TextField="#InnerText" />         <asp:TreeNodeBinding DataMember="CURRENCYCODE" TextField="#InnerText" />         <asp:TreeNodeBinding DataMember="COUNTRY" TextField="#InnerText" />    ...
תגיות: , , ,
תגובה אחת