Mise à jour Désolé. Je ne voulais pas dire que toute la bibliothèque de réflexion était hors limites. Je parlais juste du truc incroyablement lent *.Invoke().
Salut,
J'ai besoin d'implémenter un système de propriété en C# qui permet à la fois l'accès normal aux propriétés
[property_attribute()]
return_type Property { get; set; }
et l'accès par chaîne de caractères
SetProperty(string name, object value);
object GetProperty(string name);
Cependant,
- Je ne veux pas enregistrer chaque propriété individuellement.
- Je ne veux pas utiliser la réflexion
- Je ne veux pas accéder aux propriétés par l'intermédiaire d'un dictionnaire (c'est-à-dire pas de
PropertyTable["abc"]=val;
)
Ce schéma est nécessaire pour un schéma de calcul en grappe où je dois définir les propriétés à distance et localement. Toutes les propriétés auront un attribut personnalisé qui sera lu à l'initialisation. J'espère obtenir des performances d'exécution constantes.
Actuellement, mon idée est d'avoir un analyseur/préprocesseur personnalisé qui analyse/compile les scripts au moment de l'exécution et génère le code set/get comme suit :
object GetProperty(string name)
{
if(name = "blah")
return Property1;
...
}
...
Cependant, je ne pourrai pas déboguer le code avec ce schéma. Quelqu'un peut-il penser à une solution ?
Merci