בהמשך למה שראינו פעם שעברה, קיים מימוש נחמד בFramework שלIDynamicMetaObjectProvider.
המימוש הנחמד נקרא ExpandoObject – זהו אובייקט שכפי שמרמז שמו, ניתן להרחבה.
איך משתמשים בזה? ככה:
|
|
הקוד הזה מתקמפל ועובד!
מה קורה כאן?
כל פעם שאנחנו ניגשים לSetter של Property, נוצר לאותו Property איזשהו Storage מאחורי הקלעים.
איך זה עובד?
תכלס הדבר הזה ממומש באמצעות Dictionary של שמות שלProperties לערכים שלהם. באופן ממש לא מפתיע, הוא גם מממש IDictionary<string, object>, כך שאנחנו יכולים לרוץ על ערכי הExpandoObject:
|
|
מגניב, אה?
המשך יום דינאמי טוב!