mit Dynamisch Methoden hinzufügen?

Im Versuch, add-Funktion zur Laufzeit , so etwas wie, dass :

static void Main()
{
 dynamic d = new Duck();
 d.Quack =(Action) (() => Console.WriteLine("1")); //decalre a new method on runtime ??
 d.Quack(); 

}

public class Duck : System.Dynamic.DynamicObject
{
   //...
}

'UserQuery.Ente' enthält keine definition für 'Quack'

Nicht dynamisch ist, sollte mir erlauben, es zu tun ?

tut, brand new ExpandoObject ist die einzige Lösung ?

ich habe meine Ente Klasse bereits. wie kann ich es machen Expando ? - kann ich die Ente handeln, wie expando ?

  • Für einige absolut obskuren Gründen mein post gelöscht wurde. By the way, können Sie nicht ableiten, von ExpandoObject, und wenn Sie möchten, dass Ihr Objekt verhält sich wie, dass man, Sie haben 2 Lösungen, imo: 1. Erstellen Expando-Objekt, und fügen Sie zunächst alle Eigenschaften und Methoden, die Sie haben in der Ente, und verwenden Sie nicht die Ente. 2. Erzeugen Sie Ihre eigenen ExpandoObject. Schau mal hier: Dynamische Verhalten von Objekten zur Laufzeit Mit angepassten ExpandoObject ausführlichere Beispiel und leiten die Ente aus.
InformationsquelleAutor Royi Namir | 2012-05-09
Schreibe einen Kommentar