2010-09-28 3 views

Répondre

10

Vous pouvez les trouver facilement en utilisant la réflexion et une requête LINQ

var type = typeof(IRyuDice); 
var types = AppDomain.CurrentDomain.GetAssemblies().ToList() 
    .SelectMany(a => a.GetTypes()) 
    .Where(t => type.IsAssignableFrom(t)); 

AppDomain.CurrentDomain.GetAssemblies retourne une collection System.Reflection.Assembly[]. Ensuite, vous sélectionnez tous les types dans cet assemblage et vérifiez si votre interface est utilisée par ce type.

http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies.aspx

+10

Je ne pense pas que cela réponde à la question car il ne traitera que les assemblys qui sont chargés dans CurrentDomain, pas ceux présents mais pas encore utilisés dans le répertoire bin. Il y a une réponse ici qui pourrait aider: http://stackoverflow.com/questions/1288288/how-to-load-all-assemblies-from-within-your-bin-directory –

2

Ma réponse est peut-être trop évident, mais je vais donner un coup de feu ...

Vous devez jeter un oeil à DirectoryInfo pour obtenir tous les fichiers (* .dll) du répertoire et l'utilisation reflection afin de creuser dans eux ...

Est-ce que cela répond à votre question ou voulez-vous connaître la mise en œuvre réelle?

Questions connexes