Dites que j'ai une interface IInterface. Dites que j'ai 2 implémentations de la même IInterface (foo & bar). Est-il possible d'invoquer la même méthode sur les deux cibles?invoquant 2 cibles avec Castle.DynamicProxy
0
A
Répondre
0
Cela dépend comment vous approchez,
En général, ce ne est pas possible (qui retourne la valeur doit être renvoyée?), Mais rien ne vous empêche d'avoir une autre cible enveloppé dans un intercepteur, et l'avoir invoqué par l'intercepteur.
0
je suis venu avec, mais il utilise la réflexion il est donc pas aussi bon que le soutien « natif » pour le type de proxy Y-adaptateur ...
public void Intercept(IInvocation invocation)
{
invocation.Proceed();
ThreadPool.QueueUserWorkItem(new WaitCallback(
(object o) =>
{
invocation.Method.Invoke(newTarget, invocation.Arguments);
}
)
);
}
En utilisant les garanties de QueueUserWorkItem que le fil invoquant la la méthode ne va pas souffrir beaucoup en termes de performance ... Toute meilleure solution est plus que bienvenue!
Questions connexes
- 1. StructureMap avec interception et Castle.DynamicProxy
- 2. créer un makefile pour 2 cibles
- 3. invoquant proc avec instance_eval avec des arguments?
- 4. Makefile avec plusieurs cibles
- 5. execve invoquant
- 6. méthode invoquant bean Spring
- 7. PayPal avec IPN activé invoquant l'erreur sur cmd = "_cart"
- 8. validation de struts2 invoquant xml
- 9. Méthode privée invoquant des conventions
- 10. Créer une source avec deux cibles
- 11. GNU make avec de nombreux répertoires cibles
- 12. Finder ActiveRecord personnalisé invoquant des étendues nommées?
- 13. Chargement des tables cibles
- 14. invoquant une méthode PHP de Java
- 15. Service WCF invoquant - sans aucune référence ajoutée
- 16. Méthode d'objet client Ajax invoquant le paramètre
- 17. délégué invoquant des arguments génériques en C#
- 18. Hibernate - Envers - cibles d'audit multiples
- 19. iPhone - Image de marque & cibles multiples?
- 20. Comment charger deux divs dans des cibles séparées avec JQuery?
- 21. « plusieurs modèles cibles » d'erreur Makefile
- 22. MSBuild - Importations dépendantes de cibles
- 23. Changer les cibles de liens
- 24. Onglets cibles dans les onglets avec l'URL #hash (ou autre)
- 25. Résolution des problèmes JQuery Cibles d'événement
- 26. Commencer le Storyboard sur plusieurs cibles
- 27. Chemins Win32 en tant que cibles/dépendances
- 28. cibles de fourmis restituent trop de fois
- 29. Cibles iPhone + OSX sur le même projet
- 30. invoquant le carnet d'adresses iphone dans une autre application?
Comment puis-je faire envelopper une autre cible et l'appeler de manière semi-automatique comme cela se produit lorsque j'appelle Proceed()? Scénario typique (tiré de votre tutoriel joliment écrit!): IStorage avec stockage de sauvegarde. Vous pourriez vouloir lire de l'un d'eux mais vous voulez exécuter des écritures/mises à jour aux deux. C'est très proche de ce que j'essaye d'accomplir sans aucune propagation de données externe. – Paperino
dans ce cas, je disposerais simplement d'un intercepteur d'écriture/mise à jour explicite qui encapsulerait l'autre cible, intercepterait les méthodes Write/Update et les propagerait à sa cible avant de procéder à l'invocation réelle. –