在新建立的AppDomain中动态加载Assembly的问题
我写的代码如下:
public static void CallDataPassFromAssembly(string assemblyName, DataSet data, Guid itemID)
{
FileInfo fi = new FileInfo(assemblyName);
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = fi.DirectoryName
setup.PrivateBinPath = ";bin";
setup.ApplicationName = "Dynamic Caller";
setup.ShadowCopyFiles = "true";
setup.LoaderOptimization = LoaderOptimization.SingleDomain;
System.Security.Policy.Evidence adevidence = AppDomain.CurrentDomain.Evidence;
AppDomain appDomain = AppDomain.CreateDomain("Bullseye DataPass Dynamic Caller", adevidence, setup);
try
{
Assembly asm = appDomain.Load(fi.Name.Replace(fi.Extension, ""));
Type custType = asm.GetType(DataPassResourceManager.CustomizeClassName);
object[] args = new object[]{data, itemID};
DataPassBase dpb = (DataPassBase)Activator.CreateInstance(custType, args);
dpb.CallDataPass();
}
finally
{
AppDomain.Unload(appDomain);
}
}