我可以使用Spring.NET在创建的实例中注入依赖项吗?

时间:2009-11-11 10:19:45

标签: c# spring.net

是否可以使用Spring.NET IoC容器进行类似的操作?

MyClass instance = new MyClass();
ContextRegistry.GetContext().InjectDepenencies(instance);
// instance has the defined dependencies set

这会派上用场。我可以使用ContextRegistry.GetContext().Get("name"),但这将创建已定义对象的新实例。我需要设置已创建对象的依赖关系。

2 个答案:

答案 0 :(得分:4)

有三个选项,第一个匹配您想要的选项。

  • IApplicationContext.ConfigureObject(对象目标,字符串名称)

    这使用与name参数匹配的对象定义来配置目标对象。

  • IApplicationContext.Get(字符串名称, object [] arguments)

    哪个将使用构造函数 或者是一种静态的工厂方法 接收指定的参数。

  • GenericApplicationContext.RegisterObjectDefinition(字符串名称,IObjectDefinition定义)

    您可以使用它在运行时注册依赖项。

答案 1 :(得分:1)

如果ContextRegistry.GetContext().Get("name")被定义为singleton,那么

name将不会创建新实例。{{3}}是spring.net中的默认范围。