我是一個城堡溫莎諾布。我有一個WebForm項目,這是一個熱門的混亂。我正在嘗試解析依賴項來測試用戶註冊。我如何到達目前的WindsorContainer?我如何獲得當前的Castle Windsor容器?
IWindsorContainer container = ???;
IRegistrationLogic registrationLogic = container.Resolve<IRegistrationLogic>();
_registrationLogic.Register();
這裏是我的引導程序:
public class WindsorConfigTask : ICastleBootstrapperTask
{
public void Execute()
{
Container.AddFacility<WcfFacility>();
Container.Register(
Component.For<IProcessMessageRequest>()
.ActAs(
new DefaultClientModel
{
Endpoint =
WcfEndpoint.ForContract<IProcessMessageRequest>().FromConfiguration("surveyClient2")
}
),
Component.For<ILocalMembershipService>()
.ActAs(
new DefaultClientModel
{
Endpoint =
WcfEndpoint.ForContract<ILocalMembershipService>().FromConfiguration(
"localMembershipClient")
})
);
Container.Register(Component.For<IRegistrationLogic>()
.ImplementedBy<RegistrationLogic>()
.LifeStyle.Is(LifeStyleType));
}
public IWindsorContainer Container { get; set; }
#region ICastleBootstrapperTask Members
public Castle.Core.LifestyleType LifeStyleType
{
get;
set;
}
#endregion
}
那請問我認爲同樣的事情,但不是很明顯,你需要創建容器的靜態。靜態確實是關鍵,而不是界面所建議的屬性。 – CrazyDart
我沒有,因爲這裏有明確的定義,當容器將被創建,並且它將被清理。您的解決方案可能會帶來一些麻煩。 –
這很棒..所以我如何在WebAPI中訪問這個上下文? – ppumkin