程序加载自己定义目录的DLL时,可以注册AssemblyResolve事件,来自己加载。
AppDomain.CurrentDomain.AssemblyResolve += this.OnDomainAssemblyResolve;
private Assembly OnCurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
{
return LoadAssembly(args.Name);
// System.Reflection.Assembly.LoadFile(fileFullPath);
}
根据一个目录,获取该目录下的所有dll(包含子目录)
string foldPath ;
if(!Paht.IsPatRooted(foldPath))
{
folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, foldPaht);
}
string[] files = Directory.GetFiles(foldPath,"*.dll",SearchOption.AllDirectories);
foreach(var file in files)
{
string assemblyName = Path.GetFileName(file);
assemblyName = assemblyName.Sustring(0, assemblyName.Length -4);
string assemblyPath = Path.GetFullPath(file);
}
本文介绍如何通过注册AssemblyResolve事件在程序中加载指定目录下的DLL,并详细阐述了实现步骤及代码示例。
275

被折叠的 条评论
为什么被折叠?



