Charger dynamiquement une DLL à partir d'un dossier spécifique?

À l'instant, j'ai ce code :

var shellViewLibrary = Assembly.LoadFrom(Path.Combine(_DllsPath, _DllShellView));
IEnumerable<Type> types = shellViewLibrary.GetTypes();

foreach (Type type in types)
{
    var typeIShellViewInterface = type.GetInterface(_NamespaceIShellView, false);
    if (typeIShellViewInterface != null)
    {
        //here
    }
}

Le truc, c'est que là où je suis //here je veux utiliser Activator.CreateInstance pour créer un objet dont le type est type dans un dossier spécifique (qui est en dehors du dossier de création)
J'ai essayé d'environ 20 choses différentes, la plupart d'entre eux avec cette : http://msdn.microsoft.com/en-us/library/d133hta4.aspx
mais aucun ne fonctionne...
Le type que j'ai essayé est :

object MyObj = Activator.CreateInstance(shellViewLibrary.FullName, type.FullName);

ou

object MyObj = Activator.CreateInstance(Path.Combine(_DllsPath, _DllShellView), type.FullName);

J'ai toujours obtenu de différents exception, les plus courants étant :

XamlParseException

J'ai l'impression que je ne suis pas à l'aide de l'Activateur.CreateInstance dans le droit chemin avec 2 paramètres. Que dois-je faire ?

XamlParseException se produit lorsqu'il y a eu une erreur avec l'analyse de XAML. Il devrait y avoir un intérieur d'exception, donc si vous déboguez autour de cette ligne, vous devez être en mesure de se plonger dans le XamlParseException et de voir la source de celui-ci. Il sonne comme vous avez peut-être raté quelque chose que l' Assembly de votre tentative de charge exige.
Lorsque je passe mes arguments pour "Activateur.CreateInstance", j'ai eu le même message d'erreur donc j'ai vraiment envie de quelque chose qui est totalement faux :/
Je recommanderais d'emballage de votre Activateur.CreateInstance dans un try catch et débogage - au point d'exception interceptée regarder à l'intérieur des exceptions comme moi et Samuel Slade ont dit. En attendant la poursuite de code dans votre Q il ne semble pas que l'utilisation de l'Activateur ou d'Assemblage.La charge est le problème, mais plutôt une erreur dans un fichier Xaml utilisé par un contrôle instanciés par l'Activateur.CreateInstance

OriginalL'auteur Guillaume Slashy | 2012-01-19