ControllerFactory, в которой контроллеры разделены в другом проекте - PullRequest
0 голосов
/ 03 августа 2009

Мои контроллеры разделены в другом проекте, я использую замок Виндзор, и все было в порядке, у меня была типичная фабрика контроллеров в том же проекте, которая выполняет следующее:

        public WindsorControllerFactory()
    {
        container = new WindsorContainer(
                        new XmlInterpreter(new ConfigResource("castle")
                        )
                    );

        var controllerTypes = from t in Assembly.GetExecutingAssembly().GetTypes()
                          where typeof(IController).IsAssignableFrom(t)
                          select t;

        foreach (Type t in controllerTypes)
        {
            container.AddComponentLifeStyle(t.FullName, t, Castle.Core.LifestyleType.Transient);
        }
    }

Затем я хотел перекомпилировать фабрику в собственный «каркас», чтобы использовать его в будущих проектах. Но тогда исполняющая сборка не имеет контроллеров. Есть идеи, как ее отсоединить?

Я думал о чем-то вроде файла конфигурации, который указывает на сборку с контроллерами ...

1 Ответ

1 голос
/ 03 августа 2009

Прежде всего, я бы передал Assembly как параметр конструктора, затем я бы создал фабричный метод:

public static IControllerFactory FromAssemblyContaining<T>()
{
    return new WindsorControllerFactory(typeof(T).Assembly);
}

А затем создайте фабрику вашего контроллера, используя:

WindsorControllerFactory.FromAssemblyContaining<some class, Global perhaps>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...