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

发布于 2024-08-10 14:24:13 字数 302 浏览 6 评论 0原文

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

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

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

Is it possible to to something like this using Spring.NET IoC container?

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

This would come in handy. Of couse I could use ContextRegistry.GetContext().Get("name") but that would create a new instance of the defined object. I would need to set the dependencies of an already created object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

童话 2024-08-17 14:24:13

有三个选项可用,第一个选项符合您的需求。

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

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

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

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

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

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

There are three options available, the first one matches what you want.

  • IApplicationContext.ConfigureObject(object target, string name)

    This configures the target object using the object definition which is matched by the name argument.

  • IApplicationContext.Get(string name,
    object[] arguments)

    Which will either use the constructor
    or a static factory method which will
    receive the arguments as specified.

  • GenericApplicationContext.RegisterObjectDefinition(string name, IObjectDefinition definition)

    You can use it to register dependencies at runtime.

苏辞 2024-08-17 14:24:13

如果 name 定义为 singleton 这是 spring.net 中的默认范围。

ContextRegistry.GetContext().Get("name") will not create a new instance if name is defined as singleton which is the default scope in spring.net.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文