【发布时间】:2009-10-02 13:16:17
【问题描述】:
我正在使用 Prism,它也是一个不错的 Unity IoC 容器。我是这个概念的新手,所以我还没有完全掌握它。我现在要做的是使用 IoC 容器创建一个对象,但也传递一个额外的参数。请允许我用一个例子来解释..:
我有一个接受命令对象的类。这是在 IoC 容器中注册的,所以它会很好地处理它:
public class Person
{
public Person(IApplicationCommands commands) { .. }
..
}
Person person = _container.Resolve<Person>();
现在 - 我想传入另一个参数 - 例如该人的姓名。但是,我仍然想使用 IoC 容器来处理解析,从而从 IoC 容器中获取其他参数。但是将名称作为“自定义”参数传入。这个可以吗?
public class Person
{
public Person(IApplicationCommands commands, string name) { .. }
..
}
string name = "John";
Person person = _container.Resolve<Person>(name); // ....??
这个例子似乎不起作用,但有没有办法让它起作用?或者 Unity IoC 容器是否需要在调用 Resolve 之前在容器中注册所有参数?
【问题讨论】:
标签: c# .net unity-container prism