dinsdag 20 december 2011

.NET C# : ExpandoObject

In het goede oude Visual Smalltalk was het mogelijk om dynamisch data aan een object toe te voegen.
In .NET 4.0 is dit nu ook mogelijk met ExpandoObject:
using System.Dynamic;

            dynamic eo = new ExpandoObject();
            eo.Meuk = "dit is meuk";
            eo.MessageBoxTonen = new Action(() => MessageBox.Show(eo.Meuk));
            eo.MessageBoxTonen();


Vaak wil je weten of een bepaalde property aanwezig is:
            IDictionary<string, object> propertyValues = (IDictionary<string, object>)eo;
            if (propertyValues.ContainsKey("MessageBoxTonen"))
            {      
                eo.MessageBoxTonen();
            }

Ok, normaal gesproken gebruik je dit ExpandoObject niet, maar soms is het makkelijk.

Geen opmerkingen:

Een reactie posten