[英]Assembly reflection
我想从目录加载所有* .dll文件,并将每个* .dll文件的Datetime.Now
与Datetime.Now
我为此使用组装工厂:
Assembly assembly = Assembly.LoadFile(path);
try
{
var myTypes = assembly.GetTypes();
foreach (var myType in myTypes)
{.....}
}
问题是当我想用新的* .dll文件替换当前的* .dll文件时,出现错误:* .dll文件被其他进程使用(我的程序集)
所以我想在其他域上运行我的汇编程序,当我取消该域时,我的* .dll文件将是免费的。
谢谢您的帮助。
您需要在AssemblyResolve
事件中进行检查。 例:
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += FindAssembly;
...
}
和事件:
static Assembly FindAssembly (object sender, ResolveEventArgs args)
{
//here load assembly and decide which version you want
Assembly assembly = Assembly.LoadFile(path);
return assembly;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.