ContexteDelphi Prism Cirrus accès et la configuration du résultat d'une fonction
Cette question a trait à la nouvelle infrastructure Cirrus pour la programmation orientée aspect dans Delphi Prism.
J'ai actuellement un aspect que je suis Auto-Injectant dans une classe et je tente de modifier le code cible en utilisant la fonction aMethod.SetBody. J'ai structuré mon code jusqu'ici en utilisant le code d'exemple de journalisation trouvé sur le wiki de documentation Cirrus Introduction comme base.
Question
Comment puis-je accéder au résultat de la fonction étant injectée dans, avec et sans le corps de la fonction d'origine en cours d'exécution? Je voudrais être en mesure de définir le résultat de la fonction en contournant l'appel à OriginalBody dans un chemin de code et en tant que l'autre chemin de code pour appeler le OriginalBody et utiliser le résultat suivant du OriginalBody dans mon code Aspect. Je pensais à l'origine que cela pourrait être l'objectif de la méthode Aspects.RequireResult, mais cela semble forcer l'exécution de l'OriginalBody dans mon cas, entraînant une duplication de code.
Si je tente d'utiliser une chaîne dans le Datavalue (la fonction cible renvoie une chaîne) Je reçois une erreur interne. Est-ce que ce code doit être mis à jour si j'utilise une chaîne? – jamiei
Tant que SomeMethod renvoie une chaîne et que le paramètre dans la nouvelle DataValue est également une chaîne, cela devrait fonctionner. – Mosh
Je reçois (CE7) erreur interne (D03) dans RemObjects.Oxygene.targets lorsque je remplace par une chaîne lors de la suppression de l'AssignmentStatement, que fait exactement DataValue()? – jamiei