我有多个类使用的辅助组件。这是典型的情况:
public class HelperComponent
{
public void HelperMethod()
{
// do something
}
}
public class MyClass
{
private static HelperComponent Helper{ get; set;}
public void Method1()
{
Helper.HelperMethod();
}
}
用法:new MyClass().Method1();
我想知道spring.net配置/解决方案的配置是什么? 最初我用这行来获取辅助组件:
ContextRegistry.GetContext().GetObject("HelperComponentName")
然后我读到这不是更好的解决方案,我应该使用注入以避免依赖于spring并具有透明的组件使用。
我的问题是:如何使用弹簧配置实现这一目标?
我可以将静态属性注入类中吗?或者我应该制作Helper实例属性?
如果我将Helper转换为实例属性,是否需要在spring配置中定义MyClass并使用CreateObject来实例化MyClass?
如果是的话,对我来说这不是令人满意的解决方案,因为我想如上所述实例化MyClass。
任何帮助表示赞赏。
答案 0 :(得分:1)
我对spring不熟悉,但在使用IOC容器时,通常会注册所有应用程序的依赖项(及其生命周期),然后解析对象图顶部的“入口点”对象
这允许您利用IOC容器的功能,如构造函数和属性注入。
设置完成后,您可以通过IOC容器配置管理各个对象的生命周期。
在这种情况下,在{I}容器配置中将HelperComponent
注册为单身后,我会在MyClass
的构造函数中注入HelperComponent
。