예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PluginManager"/> class.
        /// </summary>
        /// <param name="pluginLocation">The plugin location.</param>
        /// <param name="Configuration">The configuration.</param>
        public PluginManager(string pluginLocation, PluginConfigurationBase Configuration)
        {
            Settings = new PluginValues {
                dllLocation = pluginLocation
            };

            LoadPluginDll();

            if (!m_isLoaded)
            {
                return;
            }

            Settings.Name        = GetIPluginBasePropertyValue <string>(PluginBaseProperty.Name);
            Settings.Version     = GetIPluginBasePropertyValue <string>(PluginBaseProperty.Version);
            Settings.Description = GetIPluginBasePropertyValue <string>(PluginBaseProperty.Description);
            Settings.hasForm     = GetIPluginBasePropertyValue <bool>(PluginBaseProperty.HasWinForm);
            SetIPluginBasePropertyValue(PluginBaseProperty.Configuration, Configuration);
        }
예제 #2
0
        /// <summary>
        ///     Initializes the configuration.
        /// </summary>
        private void InitializeConfiguration( )
        {
            ConfigurationSectionName = GetType( ).FullName;

            ConfigurationMap = new ExeConfigurationFileMap
            {
                ExeConfigFilename = Settings.ConfigurationFile
            };

            System.Configuration.Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(ConfigurationMap, ConfigurationUserLevel.None);

            if (!configuration.Sections.Contains(ConfigurationSectionName))
            {
                PluginConfigurationBase section = CreateConfigurationSection( );

                if (section != null)
                {
                    section.Enabled = true;
                    configuration.Sections.Add(ConfigurationSectionName, section);

                    configuration.Save(ConfigurationSaveMode.Modified);
                }
            }
        }