public bool LoadMethod(string fullClassName, string methodName) { try { MethodLoader methodLoader = this.FindMethod(fullClassName, methodName); if (null != methodLoader) { return(true); } methodLoader = new MethodLoader(); methodLoader.tp = this.assembly.GetType(fullClassName); if (null == methodLoader.tp) { return(false); } methodLoader.method = methodLoader.tp.GetMethod(methodName); if (null == methodLoader.method) { return(false); } methodLoader.obj = Activator.CreateInstance(methodLoader.tp); if (null == methodLoader.obj) { return(false); } this.AddMethod(fullClassName, methodName, methodLoader); } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, string.Format("AssemblyLoader::LoadMethod Error, fullClassName={0}, methodName={1}", fullClassName, methodName), ex, false); return(false); } return(true); }
public void AddMethod(string fullClassName, string methodName, MethodLoader methodLoader) { try { string strKey = string.Format("{0}.{1}", fullClassName, methodName); this.dictMethodLoader.Add(strKey, methodLoader); } catch { LogManager.WriteLog(LogTypes.Error, string.Format("AssemblyLoader::AddMethod Error, fullClassName={0} methodName={1}", fullClassName, methodName), null, true); } }
public MethodLoader FindMethod(string fullClassName, string methodName) { MethodLoader methodLoader = null; string strKey = string.Format("{0}.{1}", fullClassName, methodName); MethodLoader result; if (this.dictMethodLoader.TryGetValue(strKey, out methodLoader)) { result = methodLoader; } else { result = null; } return(result); }
public object Invoke(string fullClassName, string methodName, object[] args) { MethodLoader methodLoader = null; string strKey = string.Format("{0}.{1}", fullClassName, methodName); object result; if (!this.dictMethodLoader.TryGetValue(strKey, out methodLoader)) { result = null; } else { result = methodLoader.method.Invoke(methodLoader.obj, args); } return(result); }