Esempio n. 1
0
        /// <summary>构造
        /// </summary>
        /// <param name="ApplicationBase">插件的所在的目录(bin目录)</param>
        /// <param name="_PluginName">插件名称</param>
        /// <param name="configPath">config文件位置</param>
        /// <param name="_AppDomainID">域标识(唯一)</param>
        public SandBoxDynamicLoader(string ApplicationBase, string _PluginName, string configPath, int _AppDomainID)
        {
            PluginName = _PluginName;
            AppDomainID = _AppDomainID;
            AppDomainSetup setup = new AppDomainSetup();
            setup.ApplicationBase = ApplicationBase;
            DirectoryInfo di=new DirectoryInfo(ApplicationBase);
            if (configPath != string.Empty)
            {
                setup.ConfigurationFile = configPath;
            }
            setup.PrivateBinPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "private");
            setup.CachePath = setup.ApplicationBase;
            setup.ShadowCopyFiles = "true";
            setup.ShadowCopyDirectories = setup.ApplicationBase+"\\SandBoxRunShadow";
            AppDomain.CurrentDomain.SetShadowCopyFiles();
            this.appDomain = AppDomain.CreateDomain(PluginName, null, setup);
            this.appDomain.SetData("APP_CONFIG_FILE", configPath);
            
            String name = Assembly.GetExecutingAssembly().GetName().FullName;
            try
            {
                this.channelChannel = (SandBoxChannel)this.appDomain.CreateInstanceAndUnwrap(name, typeof(SandBoxChannel).FullName);
            }
            catch (Exception ex)
            {
 
            }
            
        }
Esempio n. 2
0
        /// <summary>构造
        /// </summary>
        /// <param name="ApplicationBase">插件的所在的目录(bin目录)</param>
        /// <param name="_PluginName">插件名称</param>
        /// <param name="configPath">config文件位置</param>
        /// <param name="_AppDomainID">域标识(唯一)</param>
        public SandBoxDynamicLoader(string ApplicationBase, string _PluginName, string configPath, int _AppDomainID)
        {
            PluginName  = _PluginName;
            AppDomainID = _AppDomainID;
            AppDomainSetup setup = new AppDomainSetup();

            setup.ApplicationBase = ApplicationBase;
            DirectoryInfo di = new DirectoryInfo(ApplicationBase);

            if (configPath != string.Empty)
            {
                setup.ConfigurationFile = configPath;
            }
            setup.PrivateBinPath        = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "private");
            setup.CachePath             = setup.ApplicationBase;
            setup.ShadowCopyFiles       = "true";
            setup.ShadowCopyDirectories = setup.ApplicationBase + "\\SandBoxRunShadow";
            AppDomain.CurrentDomain.SetShadowCopyFiles();
            this.appDomain = AppDomain.CreateDomain(PluginName, null, setup);
            this.appDomain.SetData("APP_CONFIG_FILE", configPath);

            String name = Assembly.GetExecutingAssembly().GetName().FullName;

            try
            {
                this.channelChannel = (SandBoxChannel)this.appDomain.CreateInstanceAndUnwrap(name, typeof(SandBoxChannel).FullName);
            }
            catch (Exception ex)
            {
            }
        }