Я работаю с Castle.Windsor и смотрю на внедрение параметров.
<?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>
Это мой класс
public class PluginManager : IPluginManager
{
public IList<IPlugin> Plugins { get; protected set; }
public PluginManager(IPlugin plugin)
{
this.Plugins = new List<IPlugin>();
this.Plugins.Add(plugin);
}
}
Я хотел бы обновить свой PluginManager допринимать переменное количество плагинов, например
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);
}
}
Виндзор поддерживает это?Как мне настроить мой XML?