Lorsque mon application est initialisée, je veux créer un registre de toute action MVC dont la méthode a un certain CustomAttribute dessus. Je veux que ce registre garde une trace de la zone MVC, du contrôleur et de l'action. I pourrait exiger que la personne ajoute l'attribut pour spécifier cette information, mais il semble que je devrais être capable de comprendre cette information basée sur le MethodInfo: fondamentalement l'inverse de ce qui se passe lorsque la méthode ActionLink est appelée. Comment puis-je faire ceci?Comment puis-je obtenir des informations d'action MVC à partir de MethodInfo de l'action?
2
A
Répondre
4
Effectuez une recherche dans l'ensemble pour Controller
, puis effectuez une recherche parmi toutes les méthodes pour trouver celles qui ont un certain attribut.
// current assembly -> all types that have basetype controller -> grab methods
foreach(var type in System.Reflection.Assembly.GetCallingAssembly().GetTypes().Where(t=>
typeof(Controller).IsAssignableFrom(t))))
{
foreach(var methodInfo in type.GetMethods())
{
if (methodInfo.GetCustomAttributes(typeof(MyAttribute), false).Count() > 0)
{
var action = methodInfo.Name;
var controller = type.Name;
}
}
}
Questions connexes
- 1. Comment puis-je obtenir un MethodInfo à partir d'un ActionExecutingContext?
- 2. Obtention d'un délégué à partir de methodinfo
- 3. Comment obtenir des informations sur l'utilisateur à partir de WebContext?
- 4. Comment obtenir des informations d'action à partir de RouteData?
- 5. Générer DynamicMethod à partir de MethodInfo
- 6. Comment obtenir des informations à partir des normes?
- 7. Obtenir des informations à partir des nœuds de l'arbre
- 8. Obtenir des informations d'identification SharePoint à partir de SaveFileDialog
- 9. Comment puis-je obtenir des informations récapitulatives à partir d'images?
- 10. Parse :: RecDescent - obtenir des informations à partir de lui
- 11. Obtenir des informations EPG à partir de DVB-T
- 12. Obtenir des informations générales à partir de l'iPhone
- 13. Silverlight 2 obtenir des informations d'appartenance/identité à partir de l'application MVC
- 14. Comment obtenir MethodInfo de méthode d'interface, ayant implémentant MethodInfo de méthode de classe?
- 15. Obtenir des informations à partir RadioButtons et cases à cocher
- 16. Comment invoquer un MethodInfo créé à partir d'une méthode anonyme?
- 17. WCF: Récupération de MethodInfo à partir de OperationContext
- 18. Obtenir WebResponse sous-jacente de MethodInfo généré à partir de SoapHttpClientProtocol
- 19. Comment obtenir MethodInfo d'une méthode générique?
- 20. Obtenir des informations de vol
- 21. Obtenir des informations à partir d'un objet XML en PHP
- 22. Comment obtenir des informations de objdump
- 23. Obtenir des informations de JSON
- 24. MySQL - Obtenir des informations à partir de la base de données des itinéraires de bus
- 25. Comment obtenir des informations de résolution d'écran?
- 26. Obtenir des informations sur l'icône à partir du fichier exécutable?
- 27. Obtenir des méta-informations d'une image à partir du lien
- 28. Obtenir des informations (document.getElementById) à partir d'un iFrame
- 29. Comment obtenir des informations de décalage de caractères à partir d'un document PDF?
- 30. PHP - Comment obtenir des informations de support de téléphone à partir du numéro
C'est le "// Do Something" que j'essaie de vous demander ici. Supposons que vous ayez le MethodInfo: maintenant comment obtenez-vous le nom MVC Area, Controller et Action? – StriplingWarrior
A changé mon échantillon. Ne pas savoir sur la zone cependant: une zone n'est pas étroitement liée à une action du contrôleur ou quoi? Je suppose que vous voulez regarder dans 'RouteCollection' s'il y a une zone avec le nom du contrôleur et l'action que vous avez dans les variables. –
Je suggère d'utiliser l'espace de noms pour le problème de zone, car il est très probable que les contrôleurs de zone partagent un espace de noms commun. – eglasius