2013-03-15 57 views
1

我的Spring.NET配置使用以下类型的语法,并且工作正常。

<object id="JohnUsingVariableSource" 
    type="XmlConfig.StringInjection.Person, XmlConfig"> 
    <property name="Name" value="${JohnsFullName}" /> 
</object> 

$ {JohnsFullName}占位符的值在app.config文件中配置。我的需求已经改变,我知道在启动时需要从数据库中获取名称。如何覆盖app.config文件中的值?我可以在不打开app.config的情况下在代码中执行它(这里是App.Config change value),spring.NET有办法做到这一点吗?

回答

2

是的,你可以做到这一点,而无需修改app.config文件。简单地实现自定义IVariableSource

public interface IVariableSource 
{ 
    string ResolveVariable(string name); 
} 

ResolveVariable方法,你从数据库中读取。

如果我正确记得,配置中配置的第一个变量源将是spring配置使用的变量源。