2009-08-03 1 views
0

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

 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

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

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

А затем создать контроллера завода с помощью:

WindsorControllerFactory.FromAssemblyContaining<some class, Global perhaps>(); 
+0

Отличное решение! благодаря! –

Смежные вопросы