Инъекция переменных параметров с помощью Windsor - PullRequest
0 голосов
/ 04 февраля 2011

Я работаю с 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?

1 Ответ

1 голос
/ 04 февраля 2011
...