Castle Windsor:如何指定运行时值作为参数(例如从静态函数调用返回的值)
我想在 castle xml 配置文件中执行此 CODE 等效项。
// Foo(字符串名称)
IFoo f = new Foo(StaticBarClass.Name);
XML
现在对于 XML,我知道除了参数部分内的内容之外的所有内容(例如废话)。
参数部分会是什么样子?
<component id="blah"
service="blah"
type="blah">
<parameters>
<name>StaticBarClas.Name_THAT_I_NEED_HELP_WITH</name>
</parameters>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用的一种方法是用您自己的变体替换配置参数检查器,这可以引入一些额外的行为 - 这是一个快速原型:
然后您可以像这样连接容器中的属性,其中指定“静态”类型该参数将导致该值被参数值引用的静态字段替换。
不幸的是,由于组件模型中的参数是不可变的,您通常无法通过更简单的方法(例如模型创建内核事件)来做到这一点。
One approach you could use is to replace the configuration parameters inspector with your own variant that can introduce some additional behaviour - here's a quick prototype:
You could then wire up the properties in your container like so, where specifying a type of "static" for the parameter would cause the value to be replaced with the static field that was referenced by the parameters value.
Unfortunately you generally can't do this through simpler means (such as the model created kernel event) due to the fact that parameters in the component model are immutable.
您不能仅从 xml 进行这样的设置。 但是您可以使用 工厂设施 来做到这一点。
You can't set it up like that from xml alone. But you could use the factory facility to do this.