public ValuesController( IMemoryCache cache, IOptions <PluginsOptions> optionsAccessor) { this._cache = cache; this._options = optionsAccessor.Value; }
//IRepository<User, long> repository, public CertAppServices( IDapperRepository <SJMX_ZSBH> sjmxDapperRepository, IDapperRepository <ZSH_DATA> zshDapperRepository, IMemoryCache cache, IOptions <PluginsOptions> optionsAccessor, UserManager userManager ) { _sjmxDapperRepository = sjmxDapperRepository; _zshDapperRepository = zshDapperRepository; _cache = cache; _options = optionsAccessor.Value; _userManager = userManager; }
private static int Plugins(PluginsOptions pluginsOptions) { var action = pluginsOptions.Action.ToLower(); if (action == "list") { using (var collector = new PluginCollector()) { _logger.Info($"Plugins found: { collector.Plugins.Count }"); foreach (var plugin in collector.Plugins) { _logger.Info($"- { plugin.Name } v.{ plugin.Version }: { plugin.Description }"); } } } else if (action == "help") { using (var collector = new PluginCollector()) { var plugin = collector.Plugins.SingleOrDefault((p) => p.Name.Equals(pluginsOptions.PluginName, StringComparison.InvariantCultureIgnoreCase)); if (plugin != null) { plugin.Initialize(_logger.Factory); _logger.Info($"{ plugin.Name } v.{ plugin.Version }"); _logger.Info($"by { plugin.Author }"); _logger.Info(plugin.Description); _logger.Info(plugin.Help); plugin.Shutdown(); } } } return(0); }
public static async Task <BasePluginsService> GetPlugin(IMemoryCache _cache, PluginsOptions _options, string type) { string cacheKey = $"plugin:{type}"; if (_cache.TryGetValue(cacheKey, out BasePluginsService service)) { return(service); } else { //E:\ABP\Src\MyProjectVue(Abp4.9_Dapper)\4.9.0\aspnet-core\src\MyProjectVue.Web.Host\wwwroot\Plugins\netcoreapp2.2\Plugins.SJCL1000.dll var baseDirectory = Directory.GetCurrentDirectory(); var dll = $"Plugins.SJCL.{type}.dll"; var path = Path.Combine(baseDirectory, _options.PluginsPath, dll); try { byte[] bytes = await System.IO.File.ReadAllBytesAsync(path); var assembly = Assembly.Load(bytes); //var obj = (BasePluginsService)assembly.CreateInstance($"Plugins.{type}.PluginsService"); var obj = (BasePluginsService)assembly.CreateInstance("SMIC.SJCL.PluginsService"); if (obj != null) { _cache.Set(cacheKey, obj, DateTimeOffset.Now.AddSeconds(60)); //1分钟 } //Debug.WriteLine(bytes.Length); bytes = null; return(obj); } catch (Exception) { return(null); } } }
private StarsConfiguration UsePluginsOptions(IConfigurationSection configurationSection) { PluginsOptions = configurationSection.Get <PluginsOptions>(); return(this); }