2009-07-29 4 views
1

Есть ли лучший способ для использования настроек (сгенерированных редакторами Visial Настройки Студийной) в конфигурационном файле Spring.NET, чем при использовании PropertyRetrievingFactoryObject:Лучший способ использования настроек в конфигурационном файле Spring.NET?

<object id="myUri" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> 
    <property name="TargetObject"> 
     <object type="Properties.Settings, MyAssembly"> 
     </object> 
    </property> 
    <property name="TargetProperty" value="Default.MyUri" /> 
    </object> 

    <object name="..." type="..."> 
    <property name="Uri"> 
     <ref object="myUri" /> 
    </property> 
    </object> 

?

Он не чувствует себя вправе делать это для каждой настройки ...

ответ

1

Во-первых, почему бы не просто поставить URL в конфигурационном файле Spring.NET? Наличие нескольких способов настройки приложения может быть немного запутанным. Если этот файл был сгенерирован Visual Studio, потому что вы добавили веб-ссылку, вы должны изменить свойство «Url Behavior» ваших веб-ссылок с «Динамический» на «Статический». , тогда вы можете удалить все материалы VS, файлы настроек и код конфигурации в App.config/Web.config. Чтобы настроить свой прокси-сервер, просто добавьте его в контейнер и используйте DI, чтобы ввести свойство Url.

Во всяком случае, вы можете добиться того, что вы хотите делать с языком Spring Expression:

<object name="..." type="..."> 
    <property name="Uri" expression="T(Properties.Settings, MyAssembly).Default.MyUri"> 
</object> 

Другим решением является использование компонента VariablePlaceholderConfigurer с интерфейсом IVariableSource: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-variablesource

<object type="Spring.Objects.Factory.Config.VariablePlaceholderConfigurer, Spring.Core"> 
    <property name="VariableSources"> 
     <list> 
     <object type="MyCustomImplementationVariableSource, MyAssembly"/> 
     </list> 
    </property> 
</object> 

<object name="..." type="..."> 
    <property name="Uri" value="${MyUri}"/> 
</object> 

MyCustomImplementationVariableSource представляет собой реализацию IVariableSource, который будет разрешать переменные из того места, где вы хотите (например, из вашего класса Settings).

  • Bruno
+0

Spring Выражение это то, что мне нужно. Выглядит намного чище. – isobretatel