private void InitializePlugins() { try { _plugins = PluginsLoader.Load(); } catch (Exception) { MessageBox.Show("Cannot load plugins."); } if (_plugins.Any()) { toolStrip.Items.Add(new ToolStripSeparator()); } _plugins.ToList().ForEach(plugin => { var button = plugin.AddButton(toolStrip); button.Click += (sender, args) => { plugin.Execute(drawingArea.Shapes); drawingArea.Invalidate(); }; }); }
private Dictionary <string, Type> LoadPlugins() { var loadedSchemas = new Dictionary <string, Type>(); var types = new List <Type>(); types.AddRange(PluginsLoader.LoadDllBasedSchemas()); foreach (var type in types) { try { var schema = (ISchema)Activator.CreateInstance(type); loadedSchemas.TryAdd($"#{schema.Name.ToLowerInvariant()}", type); } catch (Exception e) { if (Configuration.DebugInfo) { System.Console.WriteLine(e); } } } return(loadedSchemas); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); PluginsLoader.UseDebug(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
public ApplicationViewModel() { addMaterialsView = new AddMaterialsViewModel(); editJewelryView = new EditJewelryViewModel(addMaterialsView, () => EditJewelry_MaterialEdited(), () => EditJewelry_EditMaterial()); CurrentJewelryMaterials = new List <Material>(); JewelryList = new List <Jewelry>(); JewelryListUI = new ObservableCollection <Jewelry>(); jewelryFactory = new JewelryFactory(); materialsFactory = new MaterialsFactory(); Plugins = PluginsLoader <IJewelryEncodingPlugin> .Load(); serializersFactory = new JewelrySerializersFactory(); }
protected override void Start() { base.Start(); _label.text = $"{Plugin.DisplayName} (v{Plugin.GetVersion()})"; _descriptionLabel.SetLocalizedText(Plugin.Description); _toggle.OnValueChangedAsObservable() .Where(state => state) .Subscribe(_ => PluginsLoader.EnablePlugin(Plugin)); _toggle.OnValueChangedAsObservable() .Where(state => !state) .Subscribe(_ => PluginsLoader.DisablePlugin(Plugin)); }
public GeneratorsManager() { var nonGenericLoader = new PluginsLoader <INonGenericGenerator>(PLUGINS_PATH); var genericLoader = new PluginsLoader <IGenericGenerator>(PLUGINS_PATH); List <INonGenericGenerator> nonGenericGenerators = nonGenericLoader.Load(); nonGenericGenerators.Add(new PrimitiveGenerator()); List <IGenericGenerator> genericGenerators = genericLoader.Load(); List <IGenerator> tempGenerators = new List <IGenerator>(); tempGenerators.AddRange(nonGenericGenerators); tempGenerators.AddRange(genericGenerators); GeneratorsManager generatorsManager = new GeneratorsManager(tempGenerators); foreach (var generic in genericGenerators) { generic.SetGeneratorsManager(generatorsManager); } generators = new List <IGenerator>(); generators.AddRange(nonGenericGenerators); generators.AddRange(genericGenerators); }