2

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

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

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

4

2 回答 2

4

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

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

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

  • IApplicationContext.Get(字符串名称,对象 [] 参数)

    它将使用构造函数或静态工厂方法,该方法将接收指定的参数。

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

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

于 2009-11-12T08:46:31.387 回答
1

ContextRegistry.GetContext().Get("name")name如果定义为单例,则不会创建新实例,这是 spring.net 中的默认范围。

于 2009-11-11T10:21:23.250 回答