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
相关资源:(热插拔)模块通用集成平台