Dynamisch laden einer DLL-Datei aus einem bestimmten Ordner?

Im moment habe ich diesen 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
    }
}

Die Sache ist, dass, wo ich //here ich will Activator.CreateInstance um ein Objekt zu erstellen, dessen Typ type in einem bestimmten Ordner (außerhalb der build-Ordner)
Ich habe versucht, etwa 20 verschiedene Dinge, die meisten von Ihnen mit dieser : http://msdn.microsoft.com/en-us/library/d133hta4.aspx
aber keiner funktioniert...
Die typische Sache, die ich versucht habe, ist :

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

oder

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

Bekam ich immer andere Ausnahme, die häufigsten sind :

XamlParseException

Ich das Gefühl, dass ich nicht mit Aktivator.CreateInstance, die in der richtigen Weise mit 2 Parametern. Was soll ich tun ?

XamlParseException tritt auf, wenn es wurde ein Fehler mit dem Parsen der XAML-Code. Es sollte eine innere Ausnahme, so dass, wenn Sie Debuggen, um die Linie, die Sie sollten in der Lage sein, sich in die XamlParseException und finden Sie die Quelle. Es klingt wie Sie möglicherweise etwas fehlt, dass die Assembly Ihr versuchen zu laden erfordert.
Wenn ich wechsle meine Argumente für "Activator.CreateInstance", ich habe den gleichen Fehler, so dass ich wirklich das Gefühl, wie etwas ist ganz falsch :/
Ich würde empfehlen, die Verpackung Ihrer Aktivator.CreateInstance, die in einem try-catch-und debugging - an der Stelle der Ausnahme gefangen Blick auf die inneren Ausnahmen wie ich und Samuel Slade gesagt haben. Noch weitere code in Ihrem Q es scheint nicht, dass die Verwendung von Aktivator oder Montage.Laden ist das problem, sondern eher ein Fehler in einer Xaml-Datei verwendet, die von einem Steuerelement instanziiert wird von Aktivator.CreateInstance

InformationsquelleAutor Guillaume Slashy | 2012-01-19

Schreibe einen Kommentar