コード例 #1
0
        private static string InitializePlugins(PluginSetup pluginSetup, PluginConfiguration pluginConfigurationData)
        {
            var inspectors = new List <PluginInspector>();

            foreach (var plugin in pluginSetup.GetPlugins())
            {
                PluginInspector pluginInspector;
                plugin.Configure(pluginConfigurationData, out pluginInspector);
                inspectors.Add(pluginInspector);
            }
            return(new PluginInspectorExtrator(inspectors).ToString());
        }
コード例 #2
0
        internal static void Configure(string moduleName, PluginSetup pluginSetup)
        {
            var pluginConfigurationData = new PluginConfiguration(
                moduleName,
                AssemblyManager.GetApplicationAssembly(moduleName),
                AssemblyManager.GetDomainAssembly(moduleName),
                AssemblyManager.GetInfrastructureAssembly(moduleName)
                );

            var pluginInformation = InitializePlugins(pluginSetup, pluginConfigurationData);

            PluginFactories[moduleName] = pluginSetup.GetPlugins();

            ThreadContext.Create(moduleName);

            GetInstance <Logger>().LogInfo(pluginInformation, null);
        }
コード例 #3
0
        internal PluginContext(PluginSetup settings, PluginApplicationContext applicationContext)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            if (applicationContext == null)
            {
                throw new ArgumentNullException("applicationContext");
            }

            _settings           = (PluginSetup)settings.Clone();
            _pluginTree         = new PluginTree(this);
            _applicationContext = applicationContext;

            _settings.PropertyChanged += delegate
            {
                if (_pluginTree != null && _pluginTree.Status != PluginTreeStatus.None)
                {
                    throw new InvalidOperationException();
                }
            };
        }
コード例 #4
0
 internal ForExpression(string moduleName)
 {
     _moduleName          = moduleName;
     _pluginConfiguration = PluginSetup.Create();
 }