私はCastle Windsor 3.3を使用しており、IMachine
インスタンスを注入するViewModelを持っています。このデータは実行時まで利用できないため、Typed Factoryを使用しようとしています。私はCreateメソッドを呼び出すと城ウィンザー型ファクトリに依存関係を渡す方法
container.AddFacility<TypedFactoryFacility>();
container.Register(
Component.For<IWindsorContainer>().Instance(container),
Component.For<IEquipmentData>().ImplementedBy<EquipmentData>(),
Component.For<IMachine>().ImplementedBy<Machine>(),
Component.For<IEquipmentDataFactory>().AsFactory());
は、それが新たにインスタンス化されたオブジェクトではなく、私が通過1を注入:
public MachDataViewModel(IMachine mach)
{
_mach = machCfg;
}
public interface IEquipmentDataFactory
{
IEquipmentData Create(IMachine mach);
void Release(IMachine mach);
}
は、ここに私の登録コードです。私の登録でComponent.For<IMachine>
のエントリを削除すると、それは私に欠けている依存関係を与えます。
IEquipmentData ed = null;
IMachine m = GetMachine();
ed = factory.Create(m);
ウィンザーに私が工場に渡すオブジェクトを使用させる方法を教えてください。
おかげ
@cajundave(マシンがコンテナに渡された/工場は
IEquipmentData
の1である) - DIDこのヘルプあなたは質問を解決する? –