Voglio essere in grado di fare l'equivalente al seguente in fase di esecuzione:Come posso creare dinamicamente un'azione <T> in fase di runtime?
var action = new Action<ANYTHING AT RUNTIME>(obj => Console.WriteLine("Called = " + obj));
so che ho bisogno di ottenere il tipo corretto per l'azione, ma non è sicuro come ottenere il bit finale utilizzando Delegate.create . Type
rappresentano T nella definizione Azione.
var actionType = typeof(Action<>).MakeGenericType(Type);
var constructor = actionType.GetConstructors()[0];
var @delegate = Delegate.CreateDelegate(actionType, <WHAT GOES HERE>);
punto la gente sembra essere mancante è che sto cercando di creare un'istanza di azione in cui T non può essere specificato in modo statico, perché viene utilizzato da una classe derivata da Attribute - questo significa T potrebbe essere qualsiasi cosa e non può essere definisce come definizione generica
Acclamazioni
Quale parte del 'action = nuova azione (obj => Console.WriteLine ("chiamato =" + obj));' vuoi per generare dinamicamente? –
Mark
Voglio creare \ inizializzare il parametro 'azione' – AwkwardCoder
Sono confuso. Non esiste _parameter_ chiamato 'action'. Cosa vuoi ottenere? – Mark