Как применить преобразование VS2010 web.config к элементу с атрибутом пространства имен?

Я хотел бы использовать новую функцию VS2010 web.config функцию преобразования для изменения строки подключения в рамках nhibernate конфигурации в моем web.config файле. Соответствующий отрывок - что-то вроде этого:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
  </configSections>

  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
      <property name="connection.connection_string">(test connection string)</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
...

Я попробовал следующее преобразование без успеха:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
        <session-factory>
            <property name="connection.connection_string" xdt:Transform="Replace">(production connection string)</property>
        </session-factory>
    </hibernate-configuration>
</configuration>

Проблема, кажется, находится в xmlns атрибуте элемента nhibernate-конфигурации.

Каково должно быть корректное преобразование для замены (строка тестового соединения) с (производственная строка подключения) во время развертывания?

10
задан skaffman 25 June 2010 в 15:30
поделиться

1 ответ

Поскольку фабрика сеанса содержит коллекцию дочерних элементов, вам нужно указать ей, какой дочерний элемент заменить, используя локатор Match.

<?xml version="1.0"?>
    <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
        <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
            <session-factory>
                <property name="connection.connection_string" xdt:Transform="Replace" xdt:Locator="Match(name)>(production connection string)</property>
            </session-factory>
        </hibernate-configuration>
    </configuration>
0
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: