Wie kann ich SubSonic 2 erzählen eine andere CONFIG-Datei zu benutzen?
-
21-09-2019 - |
Frage
Ich bin mit SubSonic 2 aus einem Projekt und ich möchte eine andere .config-Datei aus dem Standard festlegen App.config. Wie kann ich SubSonic sagen eine bestimmte Konfigurationsdatei zu benutzen?
Lösung 2
Es scheint, dass Sie dies, indem Sie zwei Eigenschaften von SubSonic Objekte tun können: DataService.ConfigSection
und DataProvider.DefaultConnectionString
. Sobald diese festgelegt SubSonic versuchen wird nicht für die Standard-Anwendungskonfigurationsdatei zu suchen, es wird nur die Details verwenden Sie es gegeben haben.
Zum Beispiel:
// Part 1: set the config section:
string configPath = Assembly.GetExecutingAssembly().Location + ".config";
ExeConfigurationFileMap execfg = new ExeConfigurationFileMap();
execfg.ExeConfigFilename = configPath;
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(execfg, ConfigurationUserLevel.None);
DataService.ConfigSection = (SubSonicSection)configuration.GetSection(ConfigurationSectionName.SUB_SONIC_SERVICE);
// Part 2: set the connection string
string connectionString = configuration.ConnectionStrings.ConnectionStrings["xLocal"].ConnectionString;
DataProvider provider = DataService.Provider;
provider.DefaultConnectionString = connectionString;
Dies scheint gut zu funktionieren, aber ich bin manchmal eine lange Verzögerung auf dem zweiten bis letzten Zeile DataProvider provider = DataService.Provider;
erleben. Ich bin nicht sicher, ob dies mit dem zu tun, was ich hier tue, oder es ist ein allgemeines Montage-Ladeproblem. Ich habe dieses Problem in einer anderen Frage hier dokumentiert: Call-System .Web.Configuration.ProvidersHelper.InstantiateProviders Einnahme Alter und Altersgruppen (von SubSonic)
Andere Tipps
Sie können nicht - SubSonic arbeitet von Provider-Einstellungen, die für die Ausführungsumgebung eingestellt sind. Man könnte, wenn man will, eine connectionStrings.config verwenden und dass irgendwo setzen sonst, aber SubSonic verwendet Configuration des App-Konfiguration zu öffnen und seine Leckereien finden.