Добавить перехватчики через web.config? NHibernate - PullRequest
1 голос
/ 24 августа 2009

Не получается найти пример, когда кто-то добавил перехватчик через web.config - возможно ли это?

И да, я знаю о слушателях событий и буду использовать их в другом проекте - но я хотел посмотреть, смогу ли я обойтись без необходимости вставлять перехватчик в коде - спасибо

1 Ответ

1 голос
/ 24 августа 2009

Я не думаю, что это поддерживается, но вы можете легко получить и создать экземпляры перехватчиков из пользовательского раздела конфигурации:

NHibernate.Cfg.Configuration cfg = ...
var interceptors = (NameValueCollection) ConfigurationManager.GetSection("nhibernate.interceptors");
foreach (string k in interceptors)
    cfg.SetInterceptor((IInterceptor) Activator.CreateInstance(Type.GetType(k)));

web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
   <section name="nhibernate.interceptors" type="System.Configuration.NameValueSectionHandler, System" />
 </configSections>
 <nhibernate.interceptors>
    <add key="MyApp.Interceptors.SomeInterceptor, MyApp" value=""/>
    <add key="MyApp.Interceptors.AnotherInterceptor, MyApp" value=""/>
 </nhibernate.interceptors>
</configuration>
...