J'ai été confronté à ce problème, et même si je préférerais quelque chose d'élégant, n'importe quel vieux hack fera l'affaire à ce stade :)
J'ai un référentiel qui est enregistré quelque chose comme :
<castle>
<properties>
<myConnStr>Data Source=COMPUTERNAME\SQL2008;Initial Catalog=MyDB;Persist Security Info=True;User ID=username;Password=password</myConnStr>
</properties>
<components>
<component id="MyRepository" service="DomainModel.Abstract.IMyRepository, DomainModel" type="DomainModel.Concrete.MyRepository, DomainModel" lifestyle="PerWebRequest">
<parameters>
<connectionString>#{myConnStr}</connectionString>
</parameters>
</component>
</components>
J'essaie de configurer mon fichier de configuration de manière à ne pas avoir à modifier la partie de la propriété myConnStr pour les différentes options de déploiement. C'est très bien (voire idéal) si je ne peux établir la connectionString qu'une seule fois lorsque la configuration est chargée pour la première fois, mais je n'arrive pas à comprendre comment définir cette valeur lors de la configuration de mon conteneur.
Si je n'utilisais pas Castle Windsor, j'aurais simplement défini plusieurs chaînes de connexion comme "connectionStringStaging", "connectionStringProduction" et choisi la chaîne appropriée via le code en fonction de mon environnement (nom de l'ordinateur ou URL). Comment puis-je faire quelque chose comme cela avec une propriété de castle windsor ? La modification du "paramètre" du composant au lieu de la "propriété" serait également acceptable.