2017-03-27 49 views
2

你好,我的城堡windsor项目有一些问题。城堡windsor动态值

当我尝试通过这些方法来传递一些参数:

container.Resolve<ILogin>(new { Login = textBox1.Text, password =textBox2.Text });

登录的价值观和密码都设置一次。接下来,当即时更改文本框的值,并再次点击按钮,登录和密码的值仍然是相同的。我怎样才能改变这些参数?谢谢

回答

2

我敢打赌,你的ILogin实现是作为一个singleton在容器上注册的,因此这个构造只发生一次。当您第二次解析()时,它已经构建并且值已修复。请尝试将其改为.Transient。如果你需要更多关于如何做到这一点的信息,请看“温莎生活方式”。

顺便说一句,直接使用“容器”通常是一个错误的指示,设计明智。有时候没有别的办法,所以用一点盐来说话。

+0

谢谢,它的工作,但我现在有不同的问题..我需要有一个组件包含我的两个组件。当我尝试这样做:container.Resolve (“LogUser”).login.Login();我有个例外:“无法创建组件'LogUser',因为它具有依赖性要满足。” – Milan90

+0

在这些异常的细节中,我看不到这两个组件的参数,“MAIN”组件来自哪个参数。 – Milan90