public T Instantiate <T>(string rTypeName, params object[] rArgs) { TypeResolveAssembly rAssembly = null; var rType = GetType(rTypeName, out rAssembly); if (rType == null) { return(default);
public TypeResolveAssembly GetAssembly(Type rType) { var rTypeAssemblyName = rType.Assembly.GetName().Name; TypeResolveAssembly rAssembly = null; mAssemblies.TryGetValue(rTypeAssemblyName, out rAssembly); return(rAssembly); }
public Type[] GetTypes(string rAssemblyName) { TypeResolveAssembly rAssembly = null; if (mAssemblies.TryGetValue(rAssemblyName, out rAssembly)) { return(rAssembly.GetAllTypes()); } return(null); }
public object Invoke(object rObj, string rTypeName, string rMethodName, params object[] rArgs) { TypeResolveAssembly rAssembly = null; var rType = GetType(rTypeName, out rAssembly); if (rType == null) { return(null); } return(rAssembly.Invoke(rObj, rTypeName, rMethodName, rArgs)); }
public object Instantiate(string rTypeName, params object[] rArgs) { TypeResolveAssembly rAssembly = null; var rType = GetType(rTypeName, out rAssembly); if (rType == null) { return(null); } if (rAssembly == null) { return(null); } return(rAssembly.Instantiate(rTypeName, rArgs)); }
public Type GetType(string rTypeName, out TypeResolveAssembly rTypeResolveAssembly) { rTypeResolveAssembly = null; foreach (var rPair in mAssemblies) { var rTypes = rPair.Value.GetAllTypes(); for (int i = 0, len = rTypes.Length; i < len; i++) { if (rTypes[i].FullName.Equals(rTypeName)) { rTypeResolveAssembly = rPair.Value; return(rTypes[i]); } } } return(null); }
public void AddAssembly(string rAssemblyName, bool bIsHotfix = false) { TypeResolveAssembly rTypeResolveAssembly = null; if (bIsHotfix) { rTypeResolveAssembly = new TypeResolveAssembly_Hotfix(rAssemblyName); } else { rTypeResolveAssembly = new TypeResolveAssembly_Mono(rAssemblyName); } rTypeResolveAssembly.Load(); if (!mAssemblies.ContainsKey(rAssemblyName)) { mAssemblies.Add(rAssemblyName, rTypeResolveAssembly); } }