[Serializable]
public sealed class ProxyCreateObjectClass : MarshalByRefObject
{
public override object InitializeLifetimeService()
{
ILease lease = (ILease)base.InitializeLifetimeService();
if (lease.CurrentState == LeaseState.Initial)
{
lease.InitialLeaseTime = TimeSpan.Zero;
}
return lease;
}
public object Load(string fileNamePath, string classObjectName, string functionName, object[] constructParamValue, object[] functionParamValue)
{
Assembly objAss = Assembly.LoadFrom(fileNamePath);
Type t = objAss.GetType(classObjectName);
MethodInfo method = t.GetMethod(functionName);
object obj = Activator.CreateInstance(t, constructParamValue);
return method.Invoke(obj,functionParamValue);
}
public void Unload()
{
AppDomain.Unload(AppDomain.CurrentDomain);
}
前台、
ProxyCreateObjectClass proxy = (ProxyCreateObjectClass)appDomain.CreateInstanceFromAndUnwrap(System.AppDomain.CurrentDomain.BaseDirectory + @"MSIK.UIS.Utility.dll", "MSIK.UIS.Utility.ProxyCreateObjectClass");
objResult = proxy.Load(filePath + mDataInterception.FileName, mDataInterception.ClassObjectName, mDataInterception.FunctionName); ;