C# アプリケーション内で実行時に .dll をインポートして使用する方法を理解しようとしています。Assembly.LoadFile() を使用して、プログラムに dll をロードさせることができました (ToString() を使用してクラスの名前を取得できるため、この部分は確実に機能しています)。ただし、「出力」を使用することはできません。私のコンソールアプリケーション内からのメソッド。.dll をコンパイルしてから、コンソールのプロジェクトに移動しています。CreateInstance とメソッドを使用できるようになるまでに、追加の手順はありますか?
これは私のDLLのクラスです:
namespace DLL
{
using System;
public class Class1
{
public void Output(string s)
{
Console.WriteLine(s);
}
}
}
そして、ここに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();
}
}
}