Come posso scrivere codice C# per compilare ed eseguire codice C# generato in modo dinamico. Ci sono esempi in giro?Compilazione dinamica del codice utilizzando C#
Quello che devo fare è creare dinamicamente una classe (o classi) C# ed eseguirli in fase di runtime. Voglio che la classe generata interagisca con altre classi C# non dinamiche.
Ho visto esempi che generano file exe o dll. Non lo sono poi, voglio solo che compili un codice C# in memoria e poi lo esegua. Per esempio,
ecco una classe che non è dinamica, sarà definito nel mio montaggio C# e cambierà solo in fase di compilazione,
public class NotDynamicClass
{
private readonly List<string> values = new List<string>();
public void AddValue(string value)
{
values.Add(value);
}
public void ProcessValues()
{
// do some other stuff with values
}
}
Qui è la mia classe che è dinamica. Il mio codice C# genera questa classe ed eseguirlo,
public class DynamicClass
{
public static void Main()
{
NotDynamicClass class = new NotDynamicClass();
class.AddValue("One");
class.AddValue("two");
}
}
Così il risultato è che alla fine il mio codice non dinamica chiamerebbe processValues e sarebbe fare qualche altra roba. Il punto del codice dinamico è di consentire a noi o al cliente di aggiungere una logica personalizzata al software.
Grazie.
È possibile compilare gli assembly "plug-in" e caricare questi plug-in in fase di runtime anziché compilare dinamicamente le cose? –
Giusto, sì l'ho già fatto per un altro progetto. Questo è possibile, ma non proprio quello che cerchiamo per questo progetto. Lo prenderò in considerazione, grazie. – peter