private void RegisterScriptCSPlugin(PluginConfiguration pluginConfiguration) { kernel.Bind<IPlugin>().To<ScriptCS>().OnActivation((activatedPlugin) => { ((dynamic)activatedPlugin).Initialise(pluginConfiguration.Parameters); ((dynamic)activatedPlugin).AddParameter("ScriptName", pluginConfiguration.Name); }); }
public void RegisterPlugin(Type[] knownTypes, PluginConfiguration pluginConfiguration, IEnumerable<PluginConfiguration> pluginsConfiguration) { var plugin = knownTypes.GetType(pluginConfiguration.Name); kernel.Bind<IPlugin>().To(plugin).OnActivation((activatedPlugin)=>{ ((dynamic)activatedPlugin).Initialise(pluginConfiguration.Parameters); }); foreach (var pluginConfig in pluginsConfiguration) { var openGenericPluginType = typeof(IDependsOnPlugin<>); var closedGenericPluginType = openGenericPluginType.MakeGenericType(plugin); kernel.Bind(closedGenericPluginType).To(knownTypes.First(x => x.Name == pluginConfig.Name)).OnActivation((activatedPlugin) => { ((dynamic)activatedPlugin).Initialise(pluginConfig.Parameters); }); } }
public PluginConfiguration() { DependentPlugins = new PluginConfiguration[] { }; }