gpt4 book ai didi

c# - 使用带有额外参数的 Unity Resolve 创建对象

转载 作者:可可西里 更新时间:2023-11-01 08:16:21 26 4
gpt4 key购买 nike

我正在使用 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 之前在容器中注册所有参数?

最佳答案

Can I pass constructor parameters to Unity's Resolve() method?

container.Resolve<IFoo>(new ParameterOverrides<Foo> { { "name", "bar" }, { "address", 42 } });"

关于c# - 使用带有额外参数的 Unity Resolve 创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com