コード例 #1
0
        public static Profile GetProfile(Tiandao.Plugins.Plugin plugin)
        {
            if (plugin == null)
            {
                return(null);
            }

            return(Profile.Load(GetAssistedFilePath(plugin, ".ini")));
        }
コード例 #2
0
        public static string GetAssistedFilePath(Tiandao.Plugins.Plugin plugin, string extensionName)
        {
            if (plugin == null || string.IsNullOrWhiteSpace(extensionName))
            {
                return(null);
            }

            return(Path.Combine(
                       Path.GetDirectoryName(plugin.FilePath),
                       Path.GetFileNameWithoutExtension(plugin.FilePath) + (extensionName[0] == '.' ? extensionName : "." + extensionName)));
        }
コード例 #3
0
        public static SettingProvider GetProvider(Tiandao.Plugins.Plugin plugin)
        {
            if (plugin == null)
            {
                throw new ArgumentNullException("plugin");
            }

            var configuration = OptionUtility.GetConfiguration(plugin);

            if (configuration == null)
            {
                return(null);
            }

            return(_cache.Get(plugin.FilePath, key =>
            {
                return new SettingProvider(plugin, configuration);
            }));
        }
コード例 #4
0
        public static OptionConfiguration GetConfiguration(Tiandao.Plugins.Plugin plugin)
        {
            if (plugin == null)
            {
                return(null);
            }

            string filePath = GetAssistedFilePath(plugin, ".option");

            return(OptionConfigurationManager.Open(filePath));

            //OptionConfiguration configuration = OptionConfigurationManager.Open(filePath, true);

            //var section = configuration.GetSection("/") ?? configuration.Sections.Add("/");
            //var settings = section["settings"] as SettingElementCollection;

            //if(settings == null)
            //{
            //	settings = new SettingElementCollection();
            //	section.Children.Add("settings", settings);
            //}

            //return configuration;
        }
コード例 #5
0
 public static string GetConfigurationFilePath(Tiandao.Plugins.Plugin plugin)
 {
     return(GetAssistedFilePath(plugin, ".option"));
 }
コード例 #6
0
 internal SettingProvider(Tiandao.Plugins.Plugin plugin, OptionConfiguration configuration)
 {
     _plugin        = plugin;
     _configuration = configuration;
     _settings      = (ISettingsProvider)_configuration.GetOptionObject("/settings");
 }