MVC Actions and Object Oriented

יום שני, מאי 15, 2017

  כאשר אנחנו רוצים להגדיר Actions המקבלים אובייקטים ועושים עליהם מניפולציה ומחזירים תשובה כלשהי (שזה פחות או יותר התפקיד של כמעט כל Action) נכתוב קוד בסגנון הזה public class HomeController : Controller {     public ActionResult SendObject1(Employee person)     {         //......         //......         //......         return Json(person, JsonRequestBehavior.AllowGet);     } }   public class Employee {     public int Id { get; set; }     public string Name { get; set; }     public float Salary { get; set; } }   המתודה מקבלת אובייקט מסוג Employee ולצורך הבדיקה היא מחזירה אותו ב – JSON., הפנייה למתודה בשביל הבדיקה יכולה להתבצע ישירות מתוך שורת...

SerializationInfo TryGetValue

יום שלישי, ינואר 29, 2013

כתבתי מספר Extensions עבור מחלקת SerializationInfo. Code Snippet namespace System.Runtime.Serialization {     public static class SerializationExtensions     {         public static IEnumerable<SerializationEntry> AsEnumerator(this SerializationInfo info) ...
אין תגובות

DateTime in JSON

יום שבת, ינואר 12, 2013

אחד הדברים המעצבנים בעבודה עם ajax, זה הדרך שבה חוזר אובייקט DateTime. בהנחה שהאובייקט נראה כך:   Code Snippet public class Person {     public int MyProperty { get; set; }     public DateTime Time { get; set; } }   ויש לנו Action הנראה כך:   Code Snippet public JsonResult GetPerson() {     return Json(new Person()     {         MyProperty = 2,         Time = DateTime.Now     }, JsonRequestBehavior.AllowGet); }   כשנקרא ל – action בעזרת jQuery ajax:   Code Snippet var personFromServer = null; // Get data from server $.getJSON('home/GetPerson', function (data) {     personFromServer = data; });   מה שנקבל בחזרה יראה:   Code Snippet personFromServer = {     MyProperty: 2,     Time: "/Date(1358020217238)/"...
אין תגובות

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"}, ...
תגיות: , ,
אין תגובות

BinaryFormatter – Unable to find assembly

יום שישי, אוקטובר 26, 2012

הקוד להעביר אובייקט סרליזציה בינארית הוא די פשוט public static void SerializeToBinary(Stream stream, object graph) {     BinaryFormatter formatter = new BinaryFormatter();     formatter.Serialize(stream, graph); } לכאורה כדי לעשות דיסרליזציה ולקרוא את התוכן, נכתוב קוד כזה: ...
תגיות: ,
אין תגובות

The length of the string exceeds the value set on the maxJsonLength property

יום רביעי, יולי 11, 2012

קבלתי שאלה במייל אודות פנייה ב – ajax לשרת (web method) שלוקלית הכול עובד אבל בשרת משום מה זה לא עובד/ אחרי קצת דיבגינג של שואל השאלה, התברר שההבדל בין השרת ללוקלי, הוא בכמות המידע החוזר, ברגע שהוא הגיע למסקנה הזו, נזכרתי שיש מאפיין שמגדיר מה יהיה הגודל המקסימלי של ה – JavaScriptSerializer המאפיין נקרא maxJsonLength. כדי להגדיר את המאפיין עבור asp.net ajax, ניתן להגדיר בקונפיג את המקטע הבא: <system.web.extensions> ...
אין תגובות

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>  ...
תגיות: , ,
תגובה אחת

Google search from code

יום שישי, פברואר 17, 2012

  הגיעה אלי בקשה מעניינת.   "יש לנו בסיס נתונים המכיל ספקים, לכל ספק יש עשרות מוצרים ואנחנו לא מעוניינים להכניס לבסיס הנתונים את הקשר בין מוצרים לספקים מכיוון שיש יותר מידי, מה ניתן לעשות כדי לחסוך את הצורך להכניס ידנית את המידע."   הפיתרון שהצעתי להם הוא אמנם לא מושלם אבל בהחלט מספק אותם.   כידוע לגוגל יש אפשרות חיפוש בתוך אתר, לדוגמא: shlomo goldberg site:sela.co.il יחפש את השם shlomo goldberg בתוך האתר של סלע.   הרעיון היה להכניס לבסיס הנתונים רק את כתובת האתר של כל ספק, ובזמן שהמשתמש יחפש את המוצר, מקוד נבצע פנייה לגוגל עבור כל אחד מהספקים ונחזיר את התוצאה הראשונה (כשכמובן מודעים...
תגיות: , , , ,
3 תגובות

שיטוח של אובייקטים לקובץ – כתיבה לקובץ וקריאה מקובץ

יום חמישי, יולי 23, 2009

  הפעם אני רוצה לכתוב פוסט לטובת אלה שנכנסים לעולם ה - Net. יצא לי בזמן האחרון כמה פעמים להדגים קריאה וכתיבה לקובץ (סירילזיציה ודיסיריליזציה), חשבתי שכדאי לכתוב פוסט על זה, כי מן הסתם יהיו עוד אנשים שלומדים ומחפשים הסבר על הנושא.     הרעיון בלקחת אובייקט ולשמור אותו בקובץ הוא כדי שנוכל לשמור על המצב של האפליקציה, נניח שיש לנו תוכנה לניהול עובדים, כשהתוכנה תיסגר כל הנתונים שיש לנו בזיכרון יעלמו, ולכן אנחנו רוצים לשמור את הנתונים שלנו בדיסק הקשיח, ולמעשה לשטח את האובייקטים שלנו מהזיכרון הנדיף לזיכרון קבוע - מה שנקרא Serialization.    את דוגמת הקוד אפשר להוריד כאן.   אז איך מבצעים את זה,...
תגיות: , , ,
9 תגובות