Carregando DLLs em tempo de execução em C #

Estou tentando descobrir como você pode importar e usar uma DLL em tempo de execução dentro de um aplicativo C #. Usando Assembly.LoadFile () Eu consegui que meu programa carregasse a dll (esta parte está definitivamente funcionando, pois eu sou capaz de obter o nome da classe com ToString ()), no entanto, não consigo usar o 'Output' método de dentro do meu aplicativo de console. Estou compilando o .dll e movendo-o para o projeto do meu console. Existe uma etapa extra entre CreateInstance e poder usar os métodos?

Esta é a classe na minha DLL:

namespace DLL
{
    using System;

    public class Class1
    {
        public void Output(string s)
        {
            Console.WriteLine(s);
        }
    }
}

e aqui está o aplicativo que eu quero carregar a 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();
        }
    }
}

questionAnswers(6)

yourAnswerToTheQuestion