Как я могу указать SubSonic 2 использовать другой файл .config?

StackOverflow https://stackoverflow.com/questions/2079781

Вопрос

Я использую SubSonic 2 из проекта и хотел бы указать файл .config, отличный от файла App.config по умолчанию.Как я могу указать SubSonic использовать определенный файл конфигурации?

Это было полезно?

Решение 2

Похоже, что вы можете сделать это, установив два свойства объектов SubSonic: DataService.ConfigSection и DataProvider.DefaultConnectionString.Как только они установлены, SubSonic не будет пытаться найти файл конфигурации приложения по умолчанию, он просто будет использовать предоставленные вами данные.

Например:

        // 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;

Кажется, это работает хорошо, однако иногда у меня возникает длительная задержка на второй и последней строке. DataProvider provider = DataService.Provider;.Я не уверен, связано ли это с тем, что я здесь делаю, или это общая проблема с загрузкой сборки.Я задокументировал эту проблему в другом вопросе здесь: Вызов System.Web.Configuration.ProvidersHelper.InstantiateProviders, принимающий возраст и возраст (от SubSonic)

Другие советы

Нельзя — SubSonic работает с настройками провайдера, заданными для исполняющей среды.Вы могли бы, если хотите, использовать ConnectionStrings.config и поместить его куда-нибудь еще, но SubSonic использует ConfigurationManager, чтобы открыть конфигурацию приложения и найти в ней полезные возможности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top