11
votes

Chargez un assemblage de la poubelle dans ASP.NET

J'ai un nom de fichier, comme "foo.dll," pour une bibliothèque que je connaisse est dans le répertoire bin. Je veux créer un objet de montage pour cela. J'essaie d'instancier cet objet d'une classe qui n'est pas une page, je n'ai donc pas l'objet de demande d'obtenir le chemin. Comment puis-je obtenir le chemin que j'ai besoin d'utiliser Assembly.load ()?


0 commentaires

4 Réponses :


2
votes

fait assemblée.loadfile (...) fonctionne?


1 commentaires

Euh, bien sûr si vous connaissez la voie absolue. Je suppose que c'est la partie importante de la question.



1
votes

Dans votre description, il semble que ceci est une application Web, de sorte que si vous n'êtes pas sur un fil asynchrone que vous avez créé à partir d'une demande, vous devez toujours avoir accès au httpcontext . À partir de là, vous pouvez utiliser SERVER.MAPPATH () au fichier dont vous avez besoin.


0 commentaires

16
votes

Assembly.LoLoad ne doit pas nécessiter un chemin de fichier, mais nécessite plutôt un nom de montage. Si vous savez que votre assemblée est dans le chemin de recherche standard (c'est-à-dire le répertoire bin), vous ne devez pas connaître le chemin de disque de l'assemblage ... Vous devez connaître son nom de montage. Dans le cas de votre assemblée, en supposant que vous n'avez pas besoin d'une version spécifique, de culture, etc., le nom de l'assemblage devrait simplement être "foo": xxx pré>

si vous devez charger un Version spécifique, vous effectueriez les éléments suivants: p>

Assembly fooAssembly = Assembly.Load("Foo, Version=1.1.2, Culture=neutral");


1 commentaires

Sinon, si vous avez déjà un objet d'un type dans cet ensemble, vous pouvez faire quelque chose comme: obj.gettype (). Assemblage



0
votes

Un exemple complet à mesure que j'utilise, si cela aide. Les ressources sont un dossier sous la racine de la bibliothèque DLL (Assembly) xxx

pour appeler la fonction: xxx

PS. N'oubliez pas de marquer la "action de construction" comme "ressource intégrée" (dans la fenêtre Propriétés) de chaque fichier de ressources.


0 commentaires