1

我似乎找不到有人通过 web.config 添加拦截器的示例 - 这可能吗?

是的,我知道事件监听器并将在另一个项目中使用它们 - 但我想看看我是否可以绕过在代码中注入拦截器 - 谢谢

4

1 回答 1

1

我认为它不受支持,但您可以轻松地从自定义配置部分获取和实例化拦截器:

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

网络配置:

<?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>
于 2009-08-24T02:43:09.663 回答