Ejemplo n.º 1
0
 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]);
 }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }