예제 #1
0
        internal static void smethod_3(List <string> plugInFiles)
        {
            foreach (string str in plugInFiles)
            {
                try
                {
                    smethod_6(PlugIn.smethod_0(str));
                }
                catch (Exception exception)
                {
                    ilog_0.ErrorFormat("加载插件{0}异常:{1}", str, exception);
                    MessageManager.ShowMsgBox("FRM-000001", new string[] { str, exception.ToString() });
                }
            }
            foreach (PlugIn in2 in list_0)
            {
                string str2;
                if (in2.Properties.TryGetValue("depend", out str2))
                {
                    foreach (string str3 in str2.Split(new char[] { ',' }))
                    {
                        bool flag = false;
                        using (List <PlugIn> .Enumerator enumerator3 = list_0.GetEnumerator())
                        {
                            while (enumerator3.MoveNext())
                            {
                                string str4;
                                PlugIn current = enumerator3.Current;
                                if (current.Properties.TryGetValue("id", out str4) && str4.Equals(str3))
                                {
                                    goto Label_0112;
                                }
                            }
                            goto Label_0125;
Label_0112:
                            flag = true;
                        }
Label_0125:
                        if (!flag)
                        {
                            MessageManager.ShowMsgBox("FRM-000011", new string[] { in2.Properties["id"], str3 });
                        }
                    }
                }
            }
        }
예제 #2
0
        private static void smethod_6(PlugIn plugIn_0)
        {
            if (plugIn_0.method_5())
            {
                foreach (Class135 class2 in plugIn_0.method_4().Values)
                {
                    Class120 class3 = smethod_7(class120_0, class2.Name);
                    foreach (Function function in class2.method_0())
                    {
                        bool flag = false;
                        using (List <Function> .Enumerator enumerator3 = class3.method_1().GetEnumerator())
                        {
                            while (enumerator3.MoveNext())
                            {
                                Function current = enumerator3.Current;
                                if (current.Id.Equals(function.Id))
                                {
                                    goto Label_0092;
                                }
                            }
                            goto Label_00A5;
Label_0092:
                            flag = true;
                        }
Label_00A5:
                        if (!flag)
                        {
                            string str;
                            bool   flag2 = true;
                            if (function.Properties.TryGetValue("class", out str))
                            {
                                flag2 = ((Interface2)plugIn_0.method_9(str)).imethod_3();
                            }
                            if (flag2)
                            {
                                class3.method_1().Add(function);
                            }
                        }
                    }
                }
            }
            list_0.Add(plugIn_0);
        }
예제 #3
0
        internal static PlugIn smethod_0(string string_1)
        {
            PlugIn in2;

            try
            {
                if (dictionary_0 == null)
                {
                    dictionary_0 = new Dictionary <string, string>();
                    dictionary_0.Add("Auto", "/Aisino/Auto");
                    dictionary_0.Add("Toolbar", "/Aisino/Toolbar");
                    dictionary_0.Add("Menu", "/Aisino/Menu");
                    dictionary_0.Add("Tree", "/Aisino/Tree");
                }
                FormSplashHelper.MsgWait("正在加载插件:" + string_1);
                byte[] sourceArray      = Convert.FromBase64String("7Na8rAMiwkrjjdD3ovBEp1+7a77N+o8nsrh3X6B/K99RYmTt2+X7j7sk0z2WhONH");
                byte[] destinationArray = new byte[0x20];
                Array.Copy(sourceArray, 0, destinationArray, 0, 0x20);
                byte[] buffer3 = new byte[0x10];
                Array.Copy(sourceArray, 0x20, buffer3, 0, 0x10);
                byte[] buffer4 = AES_Crypt.Decrypt(Convert.FromBase64String("eqxLBR2DaUHwhQe5q4IYbBEPnlYiMBApixEZLPuKEP5GBTIJsWDHiTZLIa1KTjxql1eMbyDXPUn4BhJVyaLdfA=="), destinationArray, buffer3, null);
                byte[] buffer5 = new byte[0x20];
                Array.Copy(buffer4, 0, buffer5, 0, 0x20);
                byte[] buffer6 = new byte[0x10];
                Array.Copy(buffer4, 0x20, buffer6, 0, 0x10);
                FileStream stream = new FileStream(string_1, FileMode.Open);
                byte[]     buffer = new byte[stream.Length];
                stream.Read(buffer, 0, buffer.Length);
                stream.Close();
                XmlTextReader reader = new XmlTextReader(new MemoryStream(AES_Crypt.Decrypt(buffer, buffer5, buffer6, null)));
                PlugIn        @in    = smethod_1(reader, Path.GetDirectoryName(string_1));
                @in.method_1(string_1);
                @in.method_6(true);
                reader.Close();
                in2 = @in;
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return(in2);
        }
예제 #4
0
        private static PlugIn smethod_1(XmlReader xmlReader_0, string string_1)
        {
            PlugIn @in = new PlugIn();

            while (xmlReader_0.Read())
            {
                if (xmlReader_0.IsStartElement())
                {
                    string str;
                    if (((str = xmlReader_0.LocalName) == null) || !(str == "PlugIn"))
                    {
                        xmlReader_0.Close();
                        throw new Exception2("不支持的插件描述文件");
                    }
                    smethod_2(xmlReader_0, @in, string_1);
                    xmlReader_0.Close();
                }
            }
            return(@in);
        }
예제 #5
0
 internal Class135(string string_1, Aisino.Framework.Plugin.Core.Plugin.PlugIn plugIn_1)
 {
     this.list_0   = new List <Function>();
     this.plugIn_0 = plugIn_1;
     this.string_0 = string_1;
 }