Hi guys,
I am trying to implement a modular loading approach into the Windsor
container using Binsor to load all my services and components.
So this is what I have in windsor.boo and modules.boo files:
-----------Windsor.boo--------------
import Castle.MonoRail.WindsorExtension
import Castle.Facilities.Logging
import Rhino.Commons.Facilities from Rhino.Commons.ActiveRecord
# project stuff
import xxx.Models from xxx.Core
import xxx.Services from xxx.Core
import file from 'Configuration/Services.boo'
import file from 'Configuration/Modules.boo'
....
RegisterServices()
RegisterModulesAndControllers()
------- Modules.boo --------------
import ..........
def RegisterModulesAndControllers():
component 'membership.module',
MembershipModuleInstaller,IModuleInstaller
component 'contact.module', xxx.Web.Core.IModuleInstaller ,
xxx.ContactsModule.ContactsModuleInstaller
component 'events.module', xxx.Web.Core.IModuleInstaller ,
xxx.EventsModule.EventsModuleInstaller
component 'expenses.module', xxx.Web.Core.IModuleInstaller ,
xxx.ExpenseModule.ExpenseModuleInstaller
component 'reports.module', xxx.Web.Core.IModuleInstaller ,
xxx.ReportsModule.ReportsModuleInstaller
component 'communication.module', xxx.Web.Core.IModuleInstaller ,
xxx.CommunicationModule.CommunicationModuleInstaller
component 'news.module', xxx.Web.Core.IModuleInstaller ,
xxx.NewsModule.NewsModuleInstaller
component 'committee.module', xxx.Web.Core.IModuleInstaller ,
xxx.CommitteeModule.CommitteeModuleInstaller
component 'referral.module', xxx.Web.Core.IModuleInstaller ,
xxx.ReferralModule.ReferralModuleInstaller
component 'admin.module', xxx.Web.Core.IModuleInstaller ,
xxx.AdminModule.AdminModuleInstaller
component 'season.module', xxx.Web.Core.IModuleInstaller ,
xxx.SeasonModule.SeasonModuleInstaller
----------------------GlobalApplication.cs---------------------
public void MonoRail_Configure(IMonoRailConfiguration config)
{
}
public void Created(IMonoRailContainer container)
{
}
public void Initialized(IMonoRailContainer container)
{
IoC.Container.Register(
Component.For<IEmailTemplateService>().Instance(container.EmailTemplateService),
Component.For<IEmailSender>().Instance(container.EmailSender),
Component.For<IViewSourceLoader>().Instance(container.ViewSourceLoader)
);
IModuleInstaller[] installers =
IoC.Container.Kernel.ResolveAll<IModuleInstaller>();
IControllerTree tree =
(IControllerTree)IoC.Container.Resolve(typeof(IControllerTree));
IViewSourceLoader loader =
(IViewSourceLoader)IoC.Container.Resolve(typeof(IViewSourceLoader));
foreach (IModuleInstaller installer in installers)
{
installer.Install(tree, loader);
}
}
-------------------------------------------------------------
The problem is in GlobalApplication when I try to load all the
implementations for IModuleInstaller interface.
The IoC.Container.Kernel.ResolveAll<IModuleInstaller>(); returns 0
although when I debug it the Kernel GraphNodes contains all my modules
that I've been set up in the Modules.boo file.
I've tried to get them directly for here
IoC.ResolveAll<IModuleInstaller>() but the same result.
Please advise or give me some other solution to do this if you can.
Thanks,
MJ
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---