我可以使用 Spring.NET 在创建的实例中注入依赖项吗?
是否可以使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有三个选项可用,第一个选项符合您的需求。
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.
如果
name
定义为 singleton 这是 spring.net 中的默认范围。ContextRegistry.GetContext().Get("name")
will not create a new instance ifname
is defined as singleton which is the default scope in spring.net.