Próbuję ustalić, w jaki sposób można zaimportować i użyć pliku .dll w środowisku wykonawczym w aplikacji języka C#. Używam Assembly.LoadFile() Udało mi się dostać mój program do załadowania biblioteki DLL (ta część zdecydowanie działa, ponieważ jestem w stanie uzyskać nazwę klasy za pomocą ToString()), jednak nie jestem w stanie użyć "Output" metoda z poziomu mojej aplikacji konsoli. Kompiluję plik .dll, a następnie przenoszę go do projektu mojej konsoli. Czy istnieje dodatkowy krok między CreateInstance, a następnie możliwość korzystania z metod?Ładowanie bibliotek DLL w środowisku wykonawczym w języku C#
Jest to klasa w moim DLL:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
i tutaj jest zastosowanie chcę, aby załadować biblioteki DLL
namespace ConsoleApplication1
{
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");
foreach(Type type in DLL.GetExportedTypes())
{
var c = Activator.CreateInstance(type);
c.Output(@"Hello");
}
Console.ReadLine();
}
}
}
http: // stackoverflow.com/questions/2202381/reflection-how-to-invoke-method-with-parameters – Stu