2009-07-29 7 views
1

Y at-il une meilleure façon d'utiliser les paramètres (générés par Visial Stidio éditeur Paramètres) dans le fichier de configuration Spring.NET que l'utilisation PropertyRetrievingFactoryObject:Une meilleure façon d'utiliser les paramètres dans le fichier de configuration 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> 

?

Il ne se sent pas le droit de le faire pour tous les milieux ...

Répondre

1

D'abord, pourquoi ne pas simplement mettre l'URL dans le fichier de configuration Spring.NET? Avoir plusieurs façons de configurer votre application peut être un peu confus. Si ce fichier a été généré par Visual Studio parce que vous avez ajouté une référence Web, vous devez modifier la propriété "Comportement d'URL" de vos références Web de "Dynamique" à "Statique". puis vous pouvez supprimer tous les trucs VS génère, les fichiers de paramètres et le code de configuration dans le App.config/Web.config. Pour configurer votre proxy, ajoutez-le simplement au conteneur et utilisez DI pour injecter la propriété Url.

Quoi qu'il en soit, vous pouvez obtenir ce que vous vouliez faire avec la langue d'expression de printemps:

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

Une autre solution consiste à utiliser le composant VariablePlaceholderConfigurer avec l'interface 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 est une implémentation de la variable IVariableSource qui va résoudre les variables de votre choix (par exemple dans votre classe Settings).

  • Bruno
+0

Expression de printemps est ce que je dois. A l'air beaucoup plus propre. – isobretatel

Questions connexes