Malheureusement, le C# n'est pas un langage dynamique comme celui-là.
Ce que vous pouvez faire, cependant, c'est créer un fichier de code source C#, avec des classes et tout le reste, et le faire passer par le fournisseur CodeDom pour C#, le compiler dans une assemblée, puis l'exécuter.
Ce post de forum sur MSDN contient une réponse avec un code d'exemple un peu plus bas sur la page :
créer une méthode anonyme à partir d'une chaîne de caractères ?
Je ne dirais pas que c'est une très bonne solution, mais c'est quand même possible.
Quel genre de code allez-vous attendre dans cette chaîne ? S'il s'agit d'un sous-ensemble mineur de code valide, par exemple juste des expressions mathématiques, il se peut que d'autres alternatives existent.
Modifier : Eh bien, cela m'apprend à lire attentivement les questions d'abord. Oui, la réflexion pourrait vous aider ici.
Si vous divisez d'abord la chaîne de caractères par le caractère ;, pour obtenir les propriétés individuelles, vous pouvez utiliser le code suivant pour obtenir un objet PropertyInfo pour une propriété particulière d'une classe, puis utiliser cet objet pour manipuler un objet particulier.
String propName = "Text";
PropertyInfo pi = someObject.GetType().GetProperty(propName);
pi.SetValue(someObject, "New Value", new Object[0]);
Lien : Méthode PropertyInfo.SetValue
0 votes
Jetez un coup d'œil à Le shell interactif CSharp de Mono . Il a fonctions de type eval .
3 votes
C# appelle l'eval de ironpython. Je l'ai essayé en c# 4.0. Je n'ai aucune expérience en c# 2.0.
0 votes
@Peter Long, où puis-je trouver de la documentation sur l'évaluation d'IronPython ?
0 votes
@AdhipGupta Je sais que ces questions-réponses datent un peu, mais je viens de publier une nouvelle version de l'ouvrage. liste de lecture vidéo qui ressemble beaucoup à la description donnée dans la réponse de Davide Icardi. Elle est radicalement différente, et vaut probablement la peine d'être vérifiée.