public IType GetICLRTypeAss(Type _type) { if (mMapType.ContainsKey(_type.Name)) { return(mMapType[_type.Name]); } mMapType.Add(_type.Name, new SystemType(_type)); return(mMapType[_type.Name]); }
private void AddAssemblyType(System.Reflection.Assembly _assembly) { if (mMapAssembly.ContainsKey(_assembly.FullName)) { return; } mMapAssembly.Add(_assembly.FullName, _assembly); Type[] ttypes = _assembly.GetTypes(); foreach (Type ttype in ttypes) { if (mAssembType.ContainsKey(ttype.Name)) { continue; } mAssembType.Add(ttype.Name, ttype); } }
private GameCore AddGameCore(string _appname) { if (mGameMap.ContainsKey(_appname)) { throw new System.IndexOutOfRangeException("重复创建 GameCore. _appname = " + _appname); } GameCore ret = GetGameCore(this, _appname); System.Type ttype = ret.GetType(); System.Reflection.MethodInfo tmethod = ttype.GetMethod("InitGameCore", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public); object[] tparms = { sUseScriptType }; tmethod.Invoke(ret, tparms); mGameMap.Add(_appname, ret); return(ret); }
public void AddAssemblyType(byte[] _dll, byte[] _pdb) { if (_dll == null) { throw new System.NullReferenceException("AddAssemblyType bytes 不可为null"); } mAssembly = System.AppDomain.CurrentDomain.Load(_dll, _pdb); if (mAssembType == null) { mAssembType = new SafeMap <string, Type>(); } Type[] ttypes = mAssembly.GetTypes(); foreach (Type ttype in ttypes) { if (mAssembType.ContainsKey(ttype.FullName)) { continue; } mAssembType.Add(ttype.FullName, ttype); } }