2013-03-24 102 views
0

我需要在运行时加载的程序集中执行一个方法。我要加载的程序集是包含接口实现的插件。DLL在运行时加载类型

这是加载类:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Reflection; 

namespace Stub.Logic { 
    public class DllReader { 
     private static List<Type> connectionTypes = new List<Type>(); 

     public static void LoadConnectionTypes(string path) { 
      DirectoryInfo dllDirectory = new DirectoryInfo(path); 
      FileInfo[] dlls = dllDirectory.GetFiles("*.dll"); 
      foreach (FileInfo dllFileInfo in dlls) { 
       Assembly assembly = Assembly.Load(dllFileInfo.FullName); 
       connectionTypes.AddRange(assembly.GetTypes()); 
      } 
     } 

     //public static Connection GetConnection(string connectionTypeName) { 
     // return new Connection(); 
     //} 
    } 
} 

我得到这个错误:

Could not load file or assembly '..\Plugins\MqConnection.dll' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

这是加载的程序集:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using System.IO; 
using Stub.Logic; 

namespace MqConnection { 

    public class MqConnection : Connection { 
     // Stuff here... 
    } 
} 

我在做什么错?

回答