Gracias Fabio
Fabio Maulo escribió: > Podes usar WLW y hacer compy&paste del HTML > > El 25 de abril de 2009 19:49, "José F. Romaniello" > <[email protected] <mailto:[email protected]>> escribió: > > > Esta hecho, ahi va mi granito de arena : > > > http://nhforge.org/wikis/howtonh/setup-nhv-fluently-with-your-ioc-container.aspx > (se aceptan criticas, me costo un poco el coloriado de código ) > > > Fabio Maulo escribió: > > 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] <mailto:[email protected]> > <mailto:[email protected] <mailto:[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]> > <mailto:[email protected] <mailto:[email protected]>> > > <mailto:[email protected] > <mailto:[email protected]> <mailto:[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]>> > > <mailto:[email protected] > <mailto:[email protected]> <mailto:[email protected] > <mailto:[email protected]>>> > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> <mailto:[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]>>> > > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>>>> > > > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>> > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>>> <mailto:[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]>>> > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>>>> > > > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>> > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] > <mailto:[email protected]>>> > > > > <mailto:[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]>>> > > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>> > <mailto:[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>>> > > > > > <mailto:[email protected] > <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>> > > > <mailto:[email protected] > <mailto:[email protected]> <mailto:[email protected] > <mailto:[email protected]>>> > > <mailto:[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> > > > > <http://darioquintana.com.ar> > > > > > <http://darioquintana.com.ar> > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Fabio Maulo > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > 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 -~----------~----~----~----~------~----~------~--~---
