예제 #1
0
        private static Assembly LoadZipDll()
        {
            Assembly     result       = null;
            MemoryStream memoryStream = null;

            try
            {
                byte[] resource = NetzStarter.GetResource("zip.dll");
                if (resource == null)
                {
                    return(null);
                }
                memoryStream = new MemoryStream(resource);
                result       = Assembly.Load(memoryStream.ToArray());
            }
            catch
            {
                result = null;
            }
            finally
            {
                if (memoryStream != null)
                {
                    memoryStream.Close();
                }
                memoryStream = null;
            }
            return(result);
        }
예제 #2
0
        public static int StartApp(string[] args)
        {
            byte[] resource = NetzStarter.GetResource("A6C24BF5-3690-4982-887E-11E1B159B249");
            if (resource == null)
            {
                throw new Exception("application data cannot be found");
            }
            Assembly assembly = NetzStarter.GetAssembly(resource);

            return(NetzStarter.InvokeApp(assembly, args));
        }
예제 #3
0
        private static Assembly GetAssemblyByName(string name)
        {
            if (name == null)
            {
                return(null);
            }
            if (NetzStarter.cache == null)
            {
                NetzStarter.cache = new HybridDictionary();
            }
            name = name.Trim();
            string key = name.ToLower();

            if (NetzStarter.cache[key] != null)
            {
                return((Assembly)NetzStarter.cache[key]);
            }
            StringDictionary stringDictionary = NetzStarter.ParseAssName(name);
            string           text             = stringDictionary[NetzStarter.Name];

            if (text == null)
            {
                return(null);
            }
            byte[] array = null;

            /*if (text.ToLower().Equals("zip"))
             * {
             *      Assembly assembly = NetzStarter.LoadZipDll();
             *      NetzStarter.cache[key] = assembly;
             *      return assembly;
             * }*/
            array = NetzStarter.GetResource(name);
            if (array == null)
            {
                array = NetzStarter.GetResource(name.ToLower());
            }
            if (array == null)
            {
                array = NetzStarter.GetResource(text);
            }
            if (array == null)
            {
                array = NetzStarter.GetResource(text.ToLower());
            }
            if (array == null)
            {
                array = NetzStarter.GetResource(Path.GetFileNameWithoutExtension(text).ToLower());
            }
            if (array == null)
            {
                try
                {
                    array = NetzStarter.ResolveDLL(stringDictionary);
                }
                catch
                {
                    array = null;
                }
            }
            if (array == null)
            {
                return(null);
            }
            Assembly assembly2 = NetzStarter.GetAssembly(array);

            array = null;
            NetzStarter.cache[key] = assembly2;
            return(assembly2);
        }