Que buenas ideas.Podría por favor escribir un wiki con todas tus
observaciones ?
Sería muy util a todos usuarios de NHV.

El lugar para escribir un buen wiki de referencia, como te parezca mas
claro, es:
http://nhforge.org/wikis/validator/default.aspx

Tabien está el How To:
http://nhforge.org/wikis/howtonh/default.aspx


El 24 de abril de 2009 23:53, "José F. Romaniello"
<[email protected]>escribió:

>
> Ok, ya sabía como resolver un servicio con el container :S ..
> Lo que me hacía falta era el otro lado de la igual (osea lo que
> concierne a NHV) es decir, pone el shared engine en:
> NHibernate.Validator.Cfg.Environment.SharedEngineProvider
> como dice en uno de tus post.
>
> Es probable que tenga algo mal pero esto es a lo que llegué:
>
>           var ve = new ValidatorEngine();
>
>            container.Register(Component.For<ValidatorEngine>()
>                                .Instance(ve)
>                                .LifeStyle.Singleton);
>
>            container.Register(Component.For<ISharedEngineProvider>()
>                        .ImplementedBy<CastleSharedEngineProvider>());
>
>            NHibernate.Validator.Cfg.Environment.SharedEngineProvider =
>                        container.Resolve<ISharedEngineProvider>();
>
>
>            var configure = new FluentConfiguration();
>
>            configure.Register(
>                Assembly.Load("SGF.Dominio")
>                        .ValidationDefinitions()
>                )
>                .SetDefaultValidatorMode(ValidatorMode.UseAttribute)
>
>
> .IntegrateWithNHibernate.ApplyingDDLConstraints().And.RegisteringListeners();
>
>            ve.Configure(configure);
>
> Algo que no podía darme cuenta, era como decirle a NHV que altere la
> configuración de NH para aplicar las constraints ddl y registrar los
> listeners..
> Explorando un poco el código de NHV llegue a esto
> ValidatorInitializer.Initialize(miConfigDeNH)
>
> IMO: Hice varias busquedas en google y creo que no esta muy "googleable"
> (salvo medio escondido un post de Marek Blotny). Creo que el post de
> referencia para nhibernate validator fluent es el de Fabio y no menciona
> nada sobre el ValidatorInitializar.Initialize.
> Si bien son dos cosas diferentes alguien podría tener la falsa impresión
> de que con esto:
>
> "IntegrateWithNHibernate.ApplyingDDLConstraints().And.RegisteringListeners()"
> ya esta.
> IMO2: Le falta un buen summary, como lo tienen la mayoría de las otras
> clases.
>
>
> Fabio Maulo escribió:
> > El 24 de abril de 2009 15:00, "José F. Romaniello"
> > <[email protected] <mailto:[email protected]>> escribió:
> >
> >
> >     Barbaro, entiendo lo que decis y realmente me gusta mas.  Si no fuera
> >     molestia, podrías comentar un poco como se hace lo segundo (por ahora
> >     sin ServiceLocator):
> >        "En la configuración de NHV le pido a WindSor, o mejor al
> >     ServiceLocator, la instancia de ISharedEngineProvider."
> >
> >
> > container.Resolve<ISharedEngineProvider>();
> >
> >
> >     Por otro lado, existe alguna forma de hacer esto en app/web.config?
> >
> >
> > Ah bueno... desde allí no podes porque tiene que ser parameter-less ctor.
> > Pero si configuras NHV luego de configurar el container y lo primero
> > que haces es asignar el SharedEngineProvider todo te funciona.
> >
> >
> >
> >
> >     Fabio Maulo escribió:
> >     > Está bien aunque yo lo implementatría distinto.
> >     > En el constructor de CastleSharedEngineProvider injectaría
> >     > ValidatorEngine y en Castle registraría ISharedEngineProvider.
> >     > En la configuración de NHV le pido a WindSor, o mejor al
> >     > ServiceLocator, la instancia de ISharedEngineProvider.
> >     >
> >     > El 24 de abril de 2009 13:38, "José F. Romaniello"
> >     > <[email protected] <mailto:[email protected]>
> >     <mailto:[email protected] <mailto:[email protected]>>>
> >     escribió:
> >     >
> >     >
> >     >     Y ya que estamos hablando de rudimentario, yo no me animaba a
> >     >     mostrar el
> >     >     mio por las duda les causara asco,
> >     >     tiene esta pinta esta "pasable" por lo menos?:
> >     >
> >     >       public class CastleSharedEngineProvider :
> >     ISharedEngineProvider
> >     >        {
> >     >            public ValidatorEngine GetEngine()
> >     >            {
> >     >                var containerAccessor =
> >     >     HttpContext.Current.ApplicationInstance as IContainerAccessor;
> >     >
> >     >                if (containerAccessor == null)
> >     >                    throw new Exception("No se encontro
> >     >     IContainerAccessor");
> >     >
> >     >                var ve =
> >     >     containerAccessor.Container.Resolve<ValidatorEngine>();
> >     >
> >     >                return ve;
> >     >            }
> >     >        }
> >     >
> >     >     en el container lo meto asi :
> >     >
> >     >     Component.For<ValidatorEngine>()
> >     >                                            .Instance(ve)
> >     >                                            .LifeStyle.Singleton
> >     >
> >     >     (creo que el singleton no haría falta ya que le estoy
> >     pasando una
> >     >     instancia concreta).
> >     >
> >     >
> >     >     Fabio Maulo escribió:
> >     >     > barbaro me preocupa solo lo de "rudimentario"... para eso
> >     usá lo que
> >     >     > está en NHV que ya es static por si mismo.
> >     >     >
> >     >     > El 24 de abril de 2009 13:01, Juan <[email protected]
> >     <mailto:[email protected]>
> >     >     <mailto:[email protected] <mailto:[email protected]
> >>
> >     >     > <mailto:[email protected]
> >     <mailto:[email protected]> <mailto:[email protected]
> >     <mailto:[email protected]>>>>
> >     >     escribió:
> >     >     >
> >     >     >
> >     >     >     Por ahora tengo un ISharedEngineProvider rudimentario
> >     que lo
> >     >     creo en
> >     >     >     codigo y se lo pongo al
> >     >     >     NHibernate.Validator.Enviroment.SharedEngineProvider
> >     antes de
> >     >     >     configurar el NHibernate para asegurarme que es la misma
> >     >     engine que
> >     >     >     va  a utilizar NH, en los pre update/delete listeners.
> >     >     >
> >     >     >     Pero queria quitarme esa dudita, ya que con la App/Web
> >     >     config puedo
> >     >     >     hacer lo mismo, aunque yo lo hago a mano por el hecho de
> >     >     tener la
> >     >     >     config de nhv en una archivo aparte.
> >     >     >
> >     >     >     Gracias
> >     >     >
> >     >     >     On 23 abr, 11:58, Dario Quintana
> >     >     <[email protected]
> >     <mailto:[email protected]>
> >     <mailto:[email protected]
> >     <mailto:[email protected]>>
> >     >     >     <mailto:[email protected]
> >     <mailto:[email protected]>
> >     >     <mailto:[email protected]
> >     <mailto:[email protected]>>>>
> >     >     >     wrote:
> >     >     >     > Otra opción, que se podría usar para configurar con
> >     >     >     nhvalidator.cfg.xml:
> >     >     >     > ..
> >     >     >     > var vtor = new ValidatorEngine();
> >     >     >     > vtor.Configure(); //lee el nhvalidator.cfg.xml
> >     >     >     > ..
> >     >     >     >
> >     >     >     > Cuando se lee de la configuración se instancia el
> >     >     SharedEngine,
> >     >     >     pero la
> >     >     >     > instancia 'vtor' se la podría:
> >     >     >     > 1) "copiar" la instancia adentro del SharedEngine,
> >     entonces se
> >     >     >     usa la misma
> >     >     >     > instancia.
> >     >     >     > 2) descartarla, y que el SharedEngine cree otra
> >     instancia.
> >     >     Pero
> >     >     >     ahí queda
> >     >     >     > feo porque, en cada aplicación se habrían creado por lo
> >     >     menos dos
> >     >     >     > ValidatorEngine.
> >     >     >     >
> >     >     >     > 2009/4/23 Fabio Maulo <[email protected]
> >     <mailto:[email protected]>
> >     >     <mailto:[email protected] <mailto:[email protected]>>
> >     >     >     <mailto:[email protected]
> >     <mailto:[email protected]> <mailto:[email protected]
> >     <mailto:[email protected]>>>>
> >     >     >     >
> >     >     >     > > La razon es que es la unica forma de garantizar que
> el
> >     >     >     ValidatorEngine sea
> >     >     >     > > realmente shared.Pero podes asignar el
> >     SharedEngine a mano.
> >     >     >     >
> >     >     >     > --
> >     >     >     > Dario Quintanahttp://darioquintana.com.ar
> >     <http://darioquintana.com.ar>
> >     >     <http://darioquintana.com.ar>
> >     >     >     <http://darioquintana.com.ar>
> >     >     >
> >     >     >
> >     >     >
> >     >     >
> >     >     > --
> >     >     > Fabio Maulo
> >     >     >
> >     >     > >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     > --
> >     > Fabio Maulo
> >     >
> >     > >
> >
> >
> >
> >
> >
> >
> > --
> > Fabio Maulo
> >
> > >
>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a