通过接口注入服务

发布于 2025-01-14 00:34:08 字数 933 浏览 2 评论 0原文

我喜欢为接口编写代码。所以...我有一个接口..'MyService'和一个类'MyServiceImpl Implements MyService'。我有一个带有构造函数的控制器:

constructor(@service() private myService : MyService){}

constructor(@service('services.MyService') private myService : MyService){}

并且...这不起作用。我缺少一个绑定..或其他东西。我可以用 @injectable 装饰 MyServiceImpl,但环回似乎无法识别“MyServiceImpl”是“MyService”。我尝试创建一个“MyServiceProvider”,

injectable.provider({scope: BindingScope.SINGLETON})
export class MyServiceProvider implements Provider<MyService> {...}

但没有任何乐趣。我什至看到:

loopback:context:binding Bind services.MyService to provider MyServiceProvider.

但是..无论我尝试什么,我仍然得到

 Error: No binding found for services.MyService
Make sure a service binding is created in context MyAppApplication-Sowav28XQmuFEB31ZTvPMQ-0 with serviceInterface (services.MyService)

I like to code to interfaces. So... I have an interface.. 'MyService' and an class 'MyServiceImpl implements MyService'. I have a controller with constructor:

constructor(@service() private myService : MyService){}

or

constructor(@service('services.MyService') private myService : MyService){}

And... this doesn't work. I'm missing a binding.. or something. I can decorate MyServiceImpl with @injectable, but loopback can't seem to recognize that 'MyServiceImpl' is a 'MyService. I tried creating a 'MyServiceProvider',

injectable.provider({scope: BindingScope.SINGLETON})
export class MyServiceProvider implements Provider<MyService> {...}

but no joy. I'm even seeing:

loopback:context:binding Bind services.MyService to provider MyServiceProvider.

But.. no matter what I try, I still get

 Error: No binding found for services.MyService
Make sure a service binding is created in context MyAppApplication-Sowav28XQmuFEB31ZTvPMQ-0 with serviceInterface (services.MyService)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心如狂蝶 2025-01-21 00:34:08

@service 从来没有为我工作过,但是 @inject 工作得很好...虽然不是通过接口,而是通过密钥...现在对我来说已经足够了。

@service never worked for me, but @inject worked fine... though not by interface, but by key... which is sufficient for me for now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文