我正在使用Castle Windsor 3.3並且需要注入一個需要IMachine
實例的ViewModel。這些數據直到運行時纔可用,所以我試圖使用Typed Factory。如何將依賴關係傳遞給Castle Windsor類型的工廠
public MachDataViewModel(IMachine mach)
{
_mach = machCfg;
}
public interface IEquipmentDataFactory
{
IEquipmentData Create(IMachine mach);
void Release(IMachine mach);
}
這裏是我的註冊代碼:
container.AddFacility<TypedFactoryFacility>();
container.Register(
Component.For<IWindsorContainer>().Instance(container),
Component.For<IEquipmentData>().ImplementedBy<EquipmentData>(),
Component.For<IMachine>().ImplementedBy<Machine>(),
Component.For<IEquipmentDataFactory>().AsFactory());
當我調用Create方法,它注入一個新實例化的對象,而不是一個我通過。如果我在註冊中刪除Component.For<IMachine>
條目,它會給我一個缺失的依賴關係。
IEquipmentData ed = null;
IMachine m = GetMachine();
ed = factory.Create(m);
如何讓Windsor使用我傳遞給工廠的對象?
感謝
@cajundave - 這篇幫助您解決這個問題? –