1
我正在尋找NHibernate驗證器在使用NHibernate Burrow來管理NH會話的傳統ASP.net應用程序上的最佳方式。
我如何獲得它自動註冊interecptors?在Burrow ASP.net應用程序上配置NHibernate驗證器
我正在尋找NHibernate驗證器在使用NHibernate Burrow來管理NH會話的傳統ASP.net應用程序上的最佳方式。
我如何獲得它自動註冊interecptors?在Burrow ASP.net應用程序上配置NHibernate驗證器
好的,這是我最終做的。
首先,我在global.asax Application_Start事件中設置了SharedEngineProvider。
protected void Application_Start(object sender, EventArgs e)
{
InitializeValidator();
}
private void InitializeValidator()
{
NHibernateSharedEngineProvider provider = new NHibernateSharedEngineProvider();
NHVConfigurationBase config = new NHVConfigurationBase();
config.Properties[Environment.ApplyToDDL] = "true";
config.Properties[Environment.AutoregisterListeners] = "true";
config.Properties[Environment.ValidatorMode] = ValidatorMode.UseAttribute.ToString();
config.Mappings.Add(new MappingConfiguration(Assembly.GetAssembly(typeof(User)).FullName, null));
provider.GetEngine().Configure(config);
Environment.SharedEngineProvider = provider;
}
由於換頁,開始NH會議陋居攔截請求,我決定勾上PreInit事件與當前NH會話驗證集成。我有一個自定義的基本頁面(一個很好的做法,我認爲),所以我也加入了這個方法:
protected void Page_PreInit(object sender, EventArgs args)
{
Configuration cfg = new BurrowFramework().BurrowEnvironment.GetNHConfig("PersistenceUnit1");
ValidatorInitializer.Initialize(cfg);
}
到目前爲止,似乎是工作的罰款。
要得到驗證引擎的引用我使用:
validatorEngine = Environment.SharedEngineProvider.GetEngine();