2010-07-24 19 views
0

Je développe un site web avec une section modulaire. Je voudrais que quand un nouveau fichier aspx (et aspx.cs) est placé dans un sous-répertoire de l'application que je peux demander à la classe quelques informations ...Comment détecter un nouveau fichier aspx et obtenir des informations à partir d'eux?

L'idée est que lorsque le fichier est placé dans le répertoire un nouvel élément de menu est ajouté au menu. Pour ce faire, j'ai besoin de "demander à la classe" son nom, son icône, sa description, etc.

Y at-il un moyen de déterminer la classe définie dans le fichier codebehind et d'en instancier une instance?

Je sais que je pourrais chercher et analyser un fichier de configuration pour chaque plugin mais je préférerais ne pas avoir à suivre cette route.

Répondre

3

La méthode "standard" pour cela est le fichier de configuration que vous mentionnez, sous la forme d'un sitemap. Vous obtiendrez beaucoup de bonnes fonctionnalités en faisant comme ça, comme la chapelure et ainsi de suite. Je sais que c'est exactement la réponse que vous avez demandé de ne pas obtenir, mais c'est de toute façon. Cependant, si vous insistez, rien ne vous empêche d'utiliser MapPath et de rechercher des fichiers .aspx sur le disque, en les analysant pour extraire certaines informations (comme le nom de la classe), puis en faisant ce que vous voulez.

Mais SiteMap est meilleur, sauf si vous avez une exigence très étrange. Notez que votre sitemap peut provenir d'une base de données ou d'une autre source dynamique, il ne doit pas nécessairement s'agir d'un fichier XML.

+0

Vous obtiendrez également une sécurité un peu meilleure, car vous n'avez pas besoin d'autoriser des personnes aléatoires à placer des fichiers .aspx aléatoires dans un dossier pour les faire apparaître soudainement et faire ce que l'auteur voulait faire. –