4.0 is overgoten met dynamische oplossingen, is dat het einde van het gebruik van het dure reflection?
In de vorige post schreef ik over het dynamic keyword en het gebruik van optional parameters om late binding te kunnen werken met bijvoorbeeld office.
In sommige applicaties gebruiken we reflection om runtime de objecten te kunnen uitlezen en gebruiken. In 4.0 is het gebruik van DLR aanwezig en zijn er classes gemaakt in de System.Dynamic namespace waarmee je runtime eigenschappen en methoden kunt toevoegen.
Je hebt twee classes die je daarvoor kunt gebruiken; ExpandoObject en DynamicObject.
Het ExpandoObject is sealed en kun je gebruiken door daar je eigen properties aan te maken, bijvoorbeeld
dynamic persoon = new ExpandoObject();
persoon.Achternaam = "Vos";
het DynamicObject is niet sealed en kun je gebruiken om je eigen dynamische oplossing te schrijven. Je kunt hier de methoden TrySetMember en TryGetMember
overriden zodat je je eigen werking kunt beinvloeden.
meer hierover kun je terugvinden op:
http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx
http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx
http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx
woensdag 7 juli 2010
Abonneren op:
Reacties posten (Atom)
Geen opmerkingen:
Een reactie posten