2009-03-16 21 views
1

Es tut uns leid, wenn es sich um einen doppelten Beitrag handelt. link textC# Hinzufügen von Referenzen zur Laufzeit

aber ich habe nicht eine klare Lösung erhalten ..

meine Anwendung lädt verschiedene dll, und verarbeitet sie. also muss ich die DLLs in meiner Referenzliste zur Laufzeit hinzufügen.

Wie kann ich eine Assembly (DLL) als Referenz in einem C# -Projekt zur Laufzeit hinzufügen? Ich muss zur Laufzeit eine Referenz hinzufügen. d. h. normalerweise fügen wir Referenzen durch mit der rechten Maustaste auf Referenzen im Projektmappen-Explorer hinzu und wir können nach jeder DLL suchen und sie in Referenzen hinzufügen. Ich muss dies mit Code tun.

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Reflection; 
namespace GetType_success 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Assembly a = Assembly.LoadFrom(@"C:\Documents and Settings\E454935\My Documents\Visual Studio 2005\Projects\nunit_dll_hutt\for_hutt_proj\bin\Debug\for_hutt_proj.dll");    
      Type t = Type.GetType("for_hutt_proj.Class1,for_hutt_proj");    

     } 
    } 
} 

Hier ist der Code der Klassenbibliothek for_hutt_proj using System; mit System.Collections.Generic; mit System.Text;

namespace for_hutt_proj 
{ 
    public class Class1 
    { 


      public int add(int a, int b) 
      { 
       int c = 0; 
       c = a + b; 
       return c; 

      } 
} 
} 

wo, die dll hat nur eine add-methode returing int. Wenn ich diese DLL manuell in RightClicking hinzufügen und Referenzen im Solution Explorer hinzufügen, hat 't' den richtigen Typ. sonst hat es null. aber ich muss diese DLL als Referenz zu meinem Projekt zur Laufzeit hinzufügen, d. H. Mit Code und nicht über die Benutzeroberfläche. Wie kann ich dies zur Laufzeit tun?

danke im voraus.

+0

Ich schlage vor, Sie schließen dies als ein Duplikat ... –

+0

Klarheit der Antwort ist in der Regel eine Funktion der Klarheit der Frage. Wenn Sie zu Beginn nicht die richtige Antwort erhalten, klären Sie die vorhandene Frage, anstatt sie erneut zu stellen. –

+0

Sind Sie beide Arunachalam * und * pragadheesh? –

Antwort

0

Ich habe die Lösung. Wenn ich benutze, funktioniert der folgende Code gut.

Typ type = asm.GetType ("for_hutt_proj.class1", false, true);

Kredite an Marc Gravell.

Verwandte Themen