2011-04-29 3 views
1

J'ai une question sur les classes avec des interfaces. J'ai environ 12 classes avec la même interface. Maintenant, j'ai besoin d'énumérer toutes les classes. Dans la fonctionnalité, il pourrait y avoir 1000 nouveaux classés à créer. Mais parce qu'ils sont responsables des appareils, certaines classes sont parfois obsolètes.Créer des classes avec des interfaces. Puis itérer dans Codebehind

Ok. Pas de problème à la liste de toutes les classes en utilisant

dim ClassList as new List(Of MyInterface) 
ClassList.Add(New MyFirstItem()) 
ClassList.Add(New MySecondItem()) 
ClassList.Add(New MyThirdItem()) 
ClassList.Add(New ...) 

puis

For each item as MyInterface in ClassList 
    'Print info 
next 

que ce que je fais maintenant.

Je souhaite savoir s'il est possible d'indiquer à Visual Studio ou à mon application que j'ai un dossier de solution dans lequel toutes les classes sont écrites et d'ajouter automatiquement ces éléments à la liste. Ou faites comme des plugins. Je veux éviter les lignes ci-dessus. Et je veux éviter de créer un nouveau projet complet juste pour certaines lignes de code dans chaque classe.

ClassList.Add(New ...) 'would like to avoid this to do manually 

juste pour créer une instance et la jeter à nouveau immédiatement pour écrire l'information de classe à l'écran.

espoir que je pourrais expliquer ma question

Cordialement

+0

Donc vous voulez afficher une liste de noms de classes? – Chad

+0

Je veux marcher à travers toutes les classes. Mais je voudrais vous demander si vous avez une bonne idée d'ajouter automatiquement les noms de classes dans codebhind (par script) ou de le faire par application ou par méthodes de plugin. Pour autant que je sache, vous ne pouvez pas utiliser une "application \ subfolder \" avec toutes les classes. Mais je pense que c'est ce que cela rendra très facile. Pour inclure toutes les classes dans mon "application \ sous-dossier \" où sont stockées les 1000 classes. – goldengel

Répondre

0

En supposant que toutes vos classes sont dans leurs propres fichiers nommés leur nom de classe dans le répertoire que vous pouvez faire une petite application qui génèrerait vos lignes à un texte fichier comme ceci:

String[] Files= Directory.GetFiles("PATH", "*.cs");     
foreach (String file in Files) 
{ 
    WriteLine("ClassList.Add(new " + file.Replace(".cs", "") + ");"); 
} 
+0

Merci Chad. Est-il possible de faire cela avec des outils Microsoft comme des extraits ou quelque chose comme ça? Parce que j'aime ta réponse. Mais peut-être que je pourrais apprendre quelque chose sur les outils VS avec un effet similaire. Cordialement – goldengel

Questions connexes