博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net dll热插拔
阅读量:5314 次
发布时间:2019-06-14

本文共 1558 字,大约阅读时间需要 5 分钟。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;
using System.IO;
using System.Reflection;
namespace ConsoleApplication30
{
    
public 
class Program
    {
        
static 
void Main(
string[] args)
        {
            
            
string fileName =
@"
E:\test\ClassLibrary1.dll
";
            
string className = 
"
ClassLibrary1.Class1
";
            Program pm = (
new Program());
            JobBase z = pm.LoadFromAssembly(fileName, className, 
"
sdfd
");
            pm.Unload();
            Console.WriteLine(
"
1
");
            Console.Read();
            JobBase z1 = pm.LoadFromAssembly(fileName, className, 
"
sdfd1
");
            pm.Unload();
            Console.WriteLine(
"
2
");
            Console.Read();
            JobBase z2 = pm.LoadFromAssembly(fileName, className, 
"
sdfd2
");
            pm.Unload();
            Console.WriteLine(
"
3
");
            
int mz2 = 
0;
        }
        AppDomain domain = 
null;
        
public JobBase LoadFromAssembly(
string fileName, 
string className, 
string key)
        {
            
            
if (domain == 
null)
            {
                AppDomainSetup setup = 
new AppDomainSetup
                {
                    ApplicationName = 
"
AssemblyCache
",
                    CachePath =
                        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
                    ShadowCopyFiles = 
"
true
"
                };
                domain = AppDomain.CreateDomain(
"
AutoJobServiceAppDomain_Ver12
"
null, setup);
                
//
RunningDomainDict[key] = domain;
            }
            
var obj = (JobBase)domain.CreateInstanceFromAndUnwrap(fileName, className);
            
//
InitDomainInfo();
            
return obj;
        }
        
public 
void Unload()
        {
            AppDomain.Unload(domain);
        }
        
public 
void load(
string fileName, 
string className)
        {
            Assembly asm = Assembly.LoadFrom(fileName);
       
                
object o = asm.CreateInstance(className);
                JobBase rc = (JobBase)o;
              
        }
    }
}

转载于:https://www.cnblogs.com/Elong/archive/2012/08/13/2636917.html

你可能感兴趣的文章
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>