【发布时间】:2020-02-11 14:17:53
【问题描述】:
我有 2 个服务,AService 和 BService。
AService 包含一个可观察的 X 集合。
BService 需要能够访问此属性。
ATM,我正在将集合传递给 BService 中的函数,该视图模型通过其构造函数将 AService 注入其中。
有没有更好的方法来做到这一点?
我知道你不能将一个服务注入到另一个服务中,这样就消失了。
【问题讨论】:
-
你不能使用简单的 ioc 容器来为需要它们的任何事物提供这些服务的相同实例吗?
-
我说的是一个服务,它需要一个包含在另一个服务中的集合,这有意义吗?
-
为什么不能将一项服务注入另一项服务?如果这些只是类,那么您将 aservice 添加到 b 的 ctor 并且实例将被传入。如果不在 caliburn 中,则使用更好的 ioc 容器。
-
问题是我们的整个系统现在都在使用 caliburn micro 进行 di 构建,所以现在很难从它切换。 caliburn micro 中的构造更多的是你给它接口和创建它的具体类,然后你可以在任何地方注入该接口
-
快速浏览一下文档。 DimpleIOC 似乎支持通常的 IOC 构造函数注入。当您注册将被解析的依赖项时。包括您正在解决的类何时具有该依赖性。阅读构造函数注入 caliburnmicro.com/documentation/simple-container 并将 Aservice 视为 BService 的依赖项。您可以使用构造函数注入进行注入。
标签: c# wpf caliburn.micro