Reputation: 10191
I'm working with Castle.Windsor and I'm looking at parameter injection.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<components>
<component id='plugin' service='PluginApp.IPlugin, PluginApp' type='MainPlugin.Plugin, MainPlugin' />
<component id='pluginManager' service='PluginApp.IPluginManager, PluginApp' type='PluginApp.PluginManager'>
<parameters>
<plugin>${plugin}</plugin>
</parameters>
</component>
</components>
</configuration>
This is my class
public class PluginManager : IPluginManager
{
public IList<IPlugin> Plugins { get; protected set; }
public PluginManager(IPlugin plugin)
{
this.Plugins = new List<IPlugin>();
this.Plugins.Add(plugin);
}
}
I would like to update my PluginManager to accept a variable number of plugins eg
public class PluginManager : IPluginManager
{
public IList<IPlugin> Plugins { get; protected set; }
public PluginManager(params IPlugin[] plugins)
{
this.Plugins = new List<IPlugin>();
foreach(IPlugin plugin in plugins) this.Plugins.Add(plugin);
}
}
Does Windsor support this? How do I set up my XML?
Upvotes: 0
Views: 285