在C#中运行时加载DLL

在C#中运行时加载DLL

我试图找出如何在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();
        }
    }}


芜湖不芜
浏览 1089回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP