我的程序有一个插件管理器模块,它可以加载DLL文件并运行其中的方法,但我需要在“Assembly.LoadFile()”之前读取DLL属性。我该怎么办?
我已经阅读了关于Assembly文档的内容,他们是在“Assembly.LoadFile()”之后读取属性的,你知道Assembly没有“UnLoad()”方法,所以我必须在LoadFile()之前读取属性。
我已经阅读了关于Assembly文档的内容,他们是在“Assembly.LoadFile()”之后读取属性的,你知道Assembly没有“UnLoad()”方法,所以我必须在LoadFile()之前读取属性。
![enter image description here](https://istack.dev59.com/mg5Re.webp)
private void ImprotZip(string path)
{
/*
1、create tempDir, uppackage to tempDir
2、Load Plugin DLL, Load plugin dependent lib DLL
*/
string tempDirectory = CreateRuntimeDirectory(path);
string[] dllFiles = Directory.GetFiles(tempDirectory);
///Load DlL
foreach(string dll in dllFiles)
{
ImprotDll(dll, false);
}
string libPath = string.Format("{0}\\lib\\", tempDirectory);
if (!Directory.Exists(libPath))
return;
string[] dlls = Directory.GetFiles(libPath);
///Load plugin dependent lib DLL
foreach(string dll in dlls)
{
try
{
//filtering same DLL
//if(Dll.properties.AssemblyProduct != "something")
//continue;
Assembly.LoadFile(dll);
}
catch(Exception e)
{
e.Log();
}
}
}