Как я могу создать собственное свойство конфигурации NHibernate? - PullRequest
2 голосов
/ 01 июня 2010

В настоящее время я работаю над созданием собственного провайдера соединений для HNibernate, очень похожего на упомянутый здесь . В нем они указывают отдельную строку подключения в параметрах hibernate.cfg.xml. Однако, когда я иду, чтобы добавить этот новый параметр, вот так ...

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
    <session-factory>
        <property name="connection.provider">MyNameSpace.FailoverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2008Dialect,NHibernate</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">[primary connection string]</property>
        <property name="connection.failover_connection_string">[failover connection string]</property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
        ...
    </session-factory>
</hibernate-configuration>

... Я получаю сообщение об этом исключении:

InnerException  {"The 'name' attribute is invalid - The value 'connection.failover_connection_string' is invalid according to its datatype 'String' - The Enumeration constraint failed."}  System.Exception {System.Xml.Schema.XmlSchemaValidationException}

Мой вопрос: возможно ли даже добавить пользовательские свойства в файл конфигурации NHibernate? Если да, то как?

Спасибо!

1 Ответ

3 голосов
/ 01 июня 2010

Невозможно добавить свойства в файл конфигурации NHibernate, потому что он проверен схемой (и вы не можете изменить схему).

В любом случае, это не место для размещения чего-либо, кроме самой конфигурации ядра NHibernate.

Все остальное должно быть в своем собственном расположении, будь то пользовательский раздел в файле app.config, ключ в разделе appSettings и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...