我正在尝试重构我的代码以使用Common Service Locator。我有一个由其他一些组件使用的共享库。
我不明白的是:这些组件是否应该调用 ServiceLocator.Current 并解析它们的类型?在这种情况下,如何确保 ServiceLocator.Current 已实际设置?我应该创建自己的“MyServiceLocator”并添加一个静态构造函数吗?(这似乎违背了标准化抽象的目的)
或者我的共享库是否应该有一个将所有可解析类型公开为公共属性的类,从而将 ServiceLocator 完全保留在共享库的内部?(这意味着在抽象之上有一个抽象)?
问题是组件不是通过 DI 创建的,应该调用 Container 来获取他们需要的任何东西。