1
我正在使用InversifyJS與TypeScript。工廠參數inversifyJS
比方說,我有注入和未注入的構造參數的混合物類:
@injectable()
export class MyClass {
constructor(
foo: Foo, // This thing isn't injectable
@inject(Bar) bar: Bar // This thing is
){
...
}
}
我想這個類工廠注入到其它的類,然後用調用它第一個參數的值。
@injectable()
export class SomeOtherClass {
constructor(
@inject("Factory<MyClass>") myClassFactory: (foo: Foo) => MyClass
){
const someFoo = new Foo();
const myClass = myClassFactory(someFoo);
}
}
我的問題:是有一些自動魔術Inversify,讓我注入這家工廠?
我來了這麼遠,最好是這樣的:
bind<interfaces.Factory<MyClass>>("Factory<MyClass>").toFactory(context =>
(foo: Foo) =>
new MyClass(foo, context.kernel.get<Bar>(Bar))
);
但是,這意味着我明確new()
-ing MyClass
和MyClass
每一個新的可注射的依賴有太多在這裏添加。
有沒有更好的方法?也許是基於參數名稱Ninject Factory Extensions?
感謝您的支持。這絕對是一個必須「獲得」每個類的依賴關係的改進。也就是說,我可能會在GitHub上提出另一種方法。 –