Hi Fabio
> Interesting.Do you have a public example ?
I'm a complete newbie with NH so no :-)
The implementation though would be something like
var mainContainer = new UnityContainer();
//Registration of new feature
mainContainer.AddNewExtension<HierarchicalLifetimeExtension>();
//Register repositories etc from some config, but here manually for
illustration purposes
mainContainer.RegisterType<ISomeBusinessProcess, SomeBusinessProcess>(new
HierarchicalLifetimeManager());
Now let's say the constructor of ISomeBusinessProcess requires an
IUnitOfWork, which is our context. You would do this
//01: Create a child container to hold the context
using (var childContainer = mainContainer.CreateChildContainer())
{
//02: Register the context in the child container
childContainer.RegisterInstance<IUnitOfWork>(new UnitOfWork());
//03: Resolve the business process in the child container.
//This creates it and injects the IUnitOfWork we just created
var someBusinessProcess =
childContainer.Resolve<ISomeBusinessProcess>();
someBusinessProcess.Execute();
}
Obviously this is a procedural example, the real thing wouldn't reference
the containers directly etc. But the point is that anything the
SomeBusinessProcess requires will be injected and will also work with the
same IUnitOfWork instance because it is all operating within the same child
container.
Pete
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" 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/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---