Nun, Sie sind nicht wirklich Anfügen von Methoden und Eigenschaften an das Objekt. Nicht soweit es die CLR betrifft. Sie fügen nur Einträge in ein Wörterbuch ein, und wenn die ExpandoObject
Implementierung von IDynamicMetaObjectProvider
nach dem Eigenschaftswert gefragt wird (oder gefragt wird, ob die Methode ausgeführt werden soll), wird sie entsprechend ausgeführt.
Leistung ist offensichtlich langsamer als statisch gebundener Zugriff auf Methoden/Eigenschaften, aber die DLR ist ziemlich nippy. Meine persönliche Sorge ist nicht die Leistung, sondern die mangelnde Typensicherheit - ein Tippfehler kann leicht den Code aufschrauben, ohne dass der Compiler ihn bemerkt.
Mein persönlicher Rat ist, nur dynamisches Tippen in C# 4 zu verwenden, wo es einen sehr klaren Vorteil gibt ... den ich erwarte relativ selten (wie unsicheren Code).
Verwendet für ExpandoObject
? Nicht so viele, IMO - vor allem im Gespräch mit anderen dynamischen Sprachen.
möglich Duplikat von [ Was sind die wahren Vorteile von ExpandoObject?] (Http://stackoverflow.com/questions/1653046/what-are-the-true-benefits-of-expandoobject) – nawfal