ich einige Code haben ladenWie DLL während debug in VS2013
var aa = a();
b(aa);
Während des Debuggens, habe ich einen Haltepunkt auf dem b()
Anruf. Dann gehe ich zum sofortigen Fenster, ich möchte in der Lage sein, Code von einer DLL auszuführen, die in meinem Projekt ist, aber noch nicht geladen ist. Sagen wir, ich möchte eine neue Boo
und rufen Sie Foo()
. Der Code befindet sich im Namespace Baz
in dll Spongle.dll
.
Als ich
>> new Baz.Boo().Foo(aa)
geben bekomme ich den Fehler: Der Typ oder Namespace-Name 'Baz' in diesem Bereich nicht gültig ist.
Wenn ich meinen Code so ändern, dass mein Boo
bereits geladen ist, funktioniert es gut.
new Boo(); // dummy to ensure loading
var aa = a();
b(aa);
Ist es möglich, die DLL aus dem sofortigen Fenster während debug zu laden, so dass ich trotz meiner Code aufrufen kann es (noch) nicht geladen werden ?. Ich könnte das new Boo()
als einen statischen Initialisierer meiner Anwendungsklasse verwenden, aber dann habe ich Probleme während des Komponententests, da es die Klasse mit diesem statischen Initialisierer nicht notwendigerweise einschließen wird.
Der Namensraum ist 'Baz' und ist leider schon in meiner Frage enthalten. –
Es muss etwas geben, was du übersehen hast, da ich das Problem, das du beschreibst, nie hatte. Kannst du die komplette Definition deiner Boo-Klasse zeigen? –
@Nathan A: Nehmen Sie jede DLL, die Sie in Ihrer Anwendung verwenden, debuggen Sie einen Komponententest nicht mit dieser DLL, setzen Sie einen Haltepunkt und versuchen Instantiierung von dieser DLL im unmittelbaren Fenster –