繁体   English   中英

组装反射

[英]Assembly reflection

我想从目录加载所有* .dll文件,并将每个* .dll文件的Datetime.NowDatetime.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM