Ich bin auf der Suche nach einer Möglichkeit, den Standard app domain in meinem Prozess zu finden. Beachten Sie, dass sich die aktuelle Anwendungsdomäne möglicherweise von der Standarddomäne unterscheidet, z. B. wenn mein Code innerhalb von NUnit
ausgeführt wird.Zugriff auf die Standard-App-Domäne
Ich weiß, dass ich alle App-Domänen in den Prozess mit a COM interop trick shown in this answer auflisten kann, und wählen Sie die, für die IsDefaultAppDomain()
true
ist. Dies scheint jedoch eine schwergewichtige Lösung zu sein.
Gibt es eine Möglichkeit, die Standard-Anwendungsdomäne zu erhalten, die keine Filterung aller Domänen erfordert, vorzugsweise ohne COM-Interop zu durchlaufen?
Wir haben den obigen COM-Interop-Trick verwendet; Ich frage mich jedoch, ob es möglich ist, die Standard-App-Domain als Referenz zu speichern, wenn die App startet (etwa in "Main"), und schaue einfach nach. – dash
Ja, Sie können eine domäneneutrale Assembly erstellen, und in dieser Assembly können Sie einen Verweis auf die standardmäßige AppDomain speichern (in einer statischen Eigenschaft). –
@ M.A.Hanin Würde es Ihnen etwas ausmachen, diesen Ansatz zu illustrieren, oder vielleicht eine Antwort hinzuzufügen, die zeigt, wie das geht? Vielen Dank! – dasblinkenlight