1:方法比较笨,直接装载一个目录下面的所有 DLL 文件。注意要用 LoadFrom()这样才会装载到当前应用程序域里面。
DirectoryInfo DD = new DirectoryInfo(txtPath.Text);
FileInfo[] FF = DD.GetFiles("*.dll");
List<Assembly> list1 = new List<Assembly>();
foreach (FileInfo F1 in FF)
{
list1.Add(Assembly.LoadFrom(F1.FullName));
}
List<Assembly> list2 = list1.Where(m => m.FullName.Contains("Fdays.WebApp")).ToList<Assembly>();
Assembly aa = list2[0];
System.Collections.IEnumerator iEnum = aa.GetTypes().GetEnumerator();
while(iEnum.MoveNext())
{
Type TT = (Type)iEnum.Current;
listBox1.Items.Add(TT.Name);
}
2:只装载指定的程序集,然后根据它里面的依赖项信息,再装载它的依赖项,这里有个前提,就是依赖项程序集的名称与它的文件名要相同。
Assembly.GetReferencedAssemblies(),得到依赖项集合。
原文链接:https://www.f2er.com/javaschema/287573.html