您的位置:首页 > 编程语言 > ASP

asp.net动态加载程序集创建指定类的实例及调用指定方法

2017-06-23 17:08 706 查看
以下类中有三个方法:

LoadAssembly:加载指定路径的程序集

GetInstance:根据Type动态获取实例,用泛型接到返回的类型

ExecuteMothod:执行实例中的指定方法


/// <summary>
/// 继承自MarshalByRefObject表示允许跨域通信
/// </summary>
public class RemoteLoader : MarshalByRefObject
{
private Assembly _assembly;

public void LoadAssembly(string assemblyFile)
{
try
{
_assembly = Assembly.LoadFrom(assemblyFile);
//return _assembly;
}
catch (Exception ex)
{
throw ex;
}
}

public T GetInstance<T>(string typeName) where T : class
{
if (_assembly == null) return null;
var type = _assembly.GetType(typeName);
if (type == null) return null;
return Activator.CreateInstance(type) as T;
}

public void ExecuteMothod(string typeName, string methodName)
{
if (_assembly == null) return;
var type = _assembly.GetType(typeName);
var obj = Activator.CreateInstance(type);
Expression<Action> lambda = Expression.Lambda<Action>(Expression.Call(Expression.Constant(obj), type.GetMethod(methodName)), null);
lambda.Compile()();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: