문제

NHibernate Burrow를 사용하여 NH 세션을 관리하는 클래식 ASP.NET 앱에서 NHibernate Validator를 구성하는 가장 좋은 방법을 찾고 있습니다.
간선자를 자동으로 등록하도록하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

좋아, 여기 내가 한 일이있다.
먼저 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;
 }

Burrow는 페이지가 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();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top