I'm using 2.0.

Here's how I'm registering my stuff with PerWebRequest.  I am creating
a DataCOntextProvider object that holds onto a L2S DataContext.  That
object is injected into the UoW.

/// <summary>
        /// Register the IUnitOfWorkManager to resolve to
LinqToSqlUnitOfWorkManager per web request
        /// </summary>
        public void RegisterLinq2SqlUnitOfWorkPerWebRequest()
        {
            _container.Register(Component.For<IUnitOfWorkManager>()
              .LifeStyle.PerWebRequest
              .ImplementedBy<LinqToSqlUnitOfWorkManager>());
        }

        /// <summary>
        /// Register the IDataContextProvider to resolve to
DataContextProvider per web request
        /// </summary>
        public void RegisterDataContextProviderPerWebRequest()
        {
            _container.Register(Component.For<IDataContextProvider>()
              .LifeStyle.PerWebRequest
              .ImplementedBy<DataContextProvider>());
        }


Now I am simply trying to pull the UoW from the container via the
CommonServiceLocator (both CSL and Windsor Adapter are 1.0) from the
EndRequest like this:

protected void Application_EndRequest(object sender, EventArgs e)
        {
            //ignore unless this is a page (.aspx) or handler (.ashx)
            if (!RequestCanHaveContext())
                return;

            //get the IUnitOfWork manager
            var uow =
ServiceLocator.Current.GetInstance<IUnitOfWorkManager>();

            //if we have one, commit changes at the end of the request
            if (uow != null)
            {
                //don't explicitly dispose of uow or we'll get
Disposed exceptions on the context
                uow.Commit();
            }

        }


Thanks for your help,
cc



On Dec 24, 4:14 am, Krzysztof Koźmic <[email protected]>
wrote:
> Can you post a sample solution with reproduction of the problem?
> Which version of Windsor are you using?
>
> On 2009-12-24 04:36, Corey Coogan wrote:
>
> > Hi Gang,
> >     I'm registering some components related to Linq2Sql using
> > PerWebRequest lifestyle.  I see them get created, but they get
> > destroyed before my global's Application_EndRequest method gets
> > called.  Is that by design?  Does anyone know a work around?  I want
> > to call commit on my UnitOfWork object to submitchanges() at the end
> > of every request.
>
> > Thanks,
> > Corey
>
> > --
>
> > You received this message because you are subscribed to the Google Groups 
> > "Castle Project Users" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/castle-project-users?hl=en.

--

You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.


Reply via email to