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.