Thanks Humberto!  I will try to fix mine when i get back from my vacation
:)

On Wed, Mar 17, 2010 at 3:51 PM, Humberto Franco
<[email protected]>wrote:

> You will have to modify the Rhino.Commons source code to share the
> unitofwork.cerrentsession.  I will try to post a documentation article on
> ayendes site sometime in the future. In the mean time here is what I have
> for my facility and resolver:
> public class RhinoSecurityFacility : AbstractFacility
>     {
>         protected override void Init()
>         {
>
>             Kernel.Register(
>             Component.For<IAuthorizationService>()
>             .ImplementedBy<AuthorizationService>()
>             .LifeStyle.Transient,
>             Component.For<IAuthorizationRepository>()
>             .ImplementedBy<AuthorizationRepository>()
>             .LifeStyle.Transient,
>             Component.For<IPermissionsBuilderService>()
>             .ImplementedBy<PermissionsBuilderService>()
>             .LifeStyle.Transient,
>             Component.For<IPermissionsService>()
>             .ImplementedBy<PermissionsService>()
>             .LifeStyle.Transient
>             );
>
>             Kernel.Resolver.AddSubResolver(new
> ServiceIsessionResolver(Kernel));
>
>             ServiceLocator.SetLocatorProvider(() => new
> WindsorServiceLocator(IoC.Container));
>         }
>     }
>
> public class ServiceIsessionResolver : ISubDependencyResolver
>     {
>         private IKernel Kernel { get; set; }
>
>         public ServiceIsessionResolver(IKernel kernel)
>         {
>             Kernel = kernel;
>         }
>
>         public object Resolve(CreationContext context,
> ISubDependencyResolver contextHandlerResolver, ComponentModel model,
> DependencyModel dependency)
>         {
>             return Kernel.Resolve<IUnitOfWorkFactory>().CurrentSession;
>         }
>
>         public bool CanResolve(CreationContext context,
> ISubDependencyResolver contextHandlerResolver, ComponentModel model,
> DependencyModel dependency)
>         {
>             return
> typeof(ISession).IsAssignableFrom(dependency.TargetType);
>         }
>     }
>
>
> On Wed, Mar 17, 2010 at 12:09 PM, patricia 
> <[email protected]>wrote:
>
>> Hey Beto, Everyone
>>
>> I've made a facility, and set everything up like the thread you posted
>> said to. But i'm not sure where i need to put the [DoNotWire]
>> attribute!    I'm getting this error:
>> {"A cycle was detected when trying to resolve a dependency. The
>> dependency graph that resulted in a cycle is:  - Service dependency
>> 'session' type 'NHibernate.ISession' for
>> Void .ctor(NHibernate.ISession) in type
>> Rhino.Security.Services.AuthorizationRepository  - Parameter
>> dependency 'configurationFileName' type 'System.String' for
>> Void .ctor(System.Reflection.Assembly[], System.String) in type
>> Rhino.Commons.NHibernateUnitOfWorkFactory  + Parameter dependency
>> 'configurationFileName' type 'System.String' for
>> Void .ctor(System.Reflection.Assembly[], System.String) in
>> Rhino.Commons.NHibernateUnitOfWorkFactory "}
>>
>>
>> this is my facility and  sub resolver
>>
>>
>> Public Class RhinoSecurityFacility
>>    Inherits AbstractFacility
>>
>>
>>
>>    Protected Overloads Overrides Sub Init()
>>        Kernel.Resolver.AddSubResolver(New
>> ServiceISessionResolver(Kernel))
>>
>>        Kernel.Register( _
>>            Component.For(Of INHibernateInitializationAware)() _
>>                .ImplementedBy(Of NHibernateDbSchemaGeneration)())
>>
>>
>>        Kernel.Register( _
>>            Component.For(Of IEntityInformationExtractor(Of Org))() _
>>                .ImplementedBy(Of
>> VBRhinoSample.OrgInformationExtractor)() _
>>        )
>>        Kernel.Register( _
>>            Component.For(Of IEntityInformationExtractor(Of User))() _
>>                .ImplementedBy(Of
>> VBRhinoSample.UserInformationExtractor)() _
>>        )
>>        Kernel.Register( _
>>            Component.For(Of IEntityInformationExtractor(Of
>> CustomField))() _
>>                .ImplementedBy(Of
>> VBRhinoSample.CustomFieldInformationExtractor)() _
>>        )
>>        Kernel.Register( _
>>            Component.For(Of IEntityInformationExtractor(Of
>> Qualification))() _
>>            .ImplementedBy(Of
>> VBRhinoSample.QualificationFieldInformationExtractor)() _
>>        )
>>
>>
>>        Kernel.Register( _
>>             Component.For(Of IPermissionsService) _
>>             .ImplementedBy(Of
>>
>> Rhino.Security.Services.PermissionsService).LifeStyle.Is(Castle.Core.LifestyleType.Transient)
>> _
>>         )
>>        Kernel.Register( _
>>            Component.For(Of IPermissionsBuilderService) _
>>            .ImplementedBy(Of
>>
>> Rhino.Security.Services.PermissionsBuilderService).LifeStyle.Is(Castle.Core.LifestyleType.Transient)
>> _
>>        )
>>
>>        Kernel.Register( _
>>            Component.For(Of IAuthorizationRepository) _
>>            .ImplementedBy(Of
>>
>> Rhino.Security.Services.AuthorizationRepository).LifeStyle.Is(Castle.Core.LifestyleType.Transient)
>> _
>>        )
>>        Kernel.Register( _
>>            Component.For(Of IAuthorizationService) _
>>            .ImplementedBy(Of
>>
>> Rhino.Security.Services.AuthorizationService).LifeStyle.Is(Castle.Core.LifestyleType.Transient)
>> _
>>        )
>>
>>        Kernel.Resolver.AddSubResolver(New
>> ServiceISessionResolver(Kernel))
>>
>>
>>
>>    End Sub
>> End Class
>>
>> Public Class ServiceISessionResolver
>>    Implements Castle.MicroKernel.ISubDependencyResolver
>>
>>    Dim m_kernel As Castle.MicroKernel.IKernel
>>
>>    Public Sub New(ByVal kernel As Castle.MicroKernel.IKernel)
>>        m_kernel = kernel
>>
>>    End Sub
>>
>>    Public Function Resolve(ByVal context As CreationContext, ByVal
>> contexthandlerResolver As ISubDependencyResolver, ByVal model As
>> Castle.Core.ComponentModel, ByVal dependency As DependencyModel) As
>> Object Implements Castle.MicroKernel.ISubDependencyResolver.Resolve
>>        Return m_kernel.Resolve(Of IUnitOfWorkFactory).CurrentSession
>>
>>    End Function
>>
>>    Public Function CanResolve(ByVal context As
>> Castle.MicroKernel.CreationContext, ByVal contextHandlerResolver As
>> Castle.MicroKernel.ISubDependencyResolver, ByVal model As
>> Castle.Core.ComponentModel, ByVal dependency As
>> Castle.Core.DependencyModel) As Boolean Implements
>> Castle.MicroKernel.ISubDependencyResolver.CanResolve
>>        Return True
>>
>>    End Function
>>
>> End Class
>>
>>
>> I THINK I'm close to finally getting this working!
>>
>> i tried putting the DoNotWire on the currentsession property in the
>> UnitOfWork.cs   and on the CurrentSession property in the
>> nhibernateUnitOfWorkFactory.cs
>>
>>
>> Help Please!  and thank you :)
>>
>>
>> On 16 Mar, 15:17, Patricia Vandermeer <[email protected]>
>> wrote:
>> > Thanks Beto!
>> > that explains a few things!
>> >
>> > On Tue, Mar 16, 2010 at 2:50 PM, Beto <[email protected]> wrote:
>> > > Patricia,
>> >
>> > > You will need to create your own facility and resolver, look at this:
>> >
>> > >http://groups.google.co.uk/group/rhino-tools-dev/browse_thread/thread.
>> ..
>> >
>> > > On 16 Mar, 09:41, Patricia Vandermeer <[email protected]>
>> > > wrote:
>> > > > I found this thread:
>> > >http://groups.google.co.uk/group/rhino-tools-dev/browse_thread/thread.
>> ..
>> >
>> > > > which explains where it went.  But i'm having the same problem that
>> Dan
>> > > was
>> > > > having!
>> >
>> > > > Can't create component
>> 'Rhino.Security.Services.AuthorizationRepository'
>> > > as
>> >
>> > > > > it has dependencies to be satisfied.
>> > > > > Rhino.Security.Services.AuthorizationRepository is waiting for the
>> > > > > following dependencies:
>> >
>> > > > > Services:
>> > > > > - NHibernate.ISession which was not registered.
>> >
>> > > > Thanks again for the help!
>> >
>> > > > On Tue, Mar 16, 2010 at 12:11 PM, patricia <
>> > > [email protected]>wrote:
>> >
>> > > > > Hello, Me again,
>> >
>> > > > > I'm trying to build my project with fresh versions of rhino
>> commons
>> > > > > and security and castle windsor.  But i seem to have lost
>> > > > > RhinoSecurityFacility !
>> >
>> > > > > in the RhinoSecNhSetup.zip   sample app it seems to be in
>> > > > > rhino.security  but it is no where to be found in the version i
>> got
>> > > > > from github!
>> >
>> > > > > here is what visual studio's comes up with when i do a "go to
>> > > > > definition"  on it in the sample project:
>> >
>> > > > > using Castle.MicroKernel.Facilities;
>> > > > > using System;
>> >
>> > > > > namespace Rhino.Security
>> > > > > {
>> > > > >    public class RhinoSecurityFacility : AbstractFacility
>> > > > >    {
>> > > > >        public RhinoSecurityFacility(Type userType);
>> > > > >        public RhinoSecurityFacility(SecurityTableStructure
>> > > > > securityTableStructure, Type userType);
>> >
>> > > > >        protected override void Init();
>> > > > >    }
>> > > > > }
>> >
>> > > > > I have a feeling this is me just looking in all the wrong places,
>> but
>> > > > > i've run out of places to look!
>> >
>> > > > > Thanks for the help!
>> >
>> > > > > --
>> > > > > You received this message because you are subscribed to the Google
>> > > Groups
>> > > > > "Rhino Tools Dev" group.
>> > > > > To post to this group, send email to
>> [email protected].
>> > > > > To unsubscribe from this group, send email to
>> > > > > [email protected]<rhino-tools-dev%[email protected]>
>> <rhino-tools-dev%[email protected]<rhino-tools-dev%[email protected]>
>> >
>> > > <rhino-tools-dev%2Bunsubscribe@ googlegroups.com>
>> > > > > .
>> > > > > For more options, visit this group at
>> > > > >http://groups.google.com/group/rhino-tools-dev?hl=en.
>> >
>> > > --
>> > > You received this message because you are subscribed to the Google
>> Groups
>> > > "Rhino Tools Dev" group.
>> > > To post to this group, send email to [email protected]
>> .
>> > > To unsubscribe from this group, send email to
>> > > [email protected]<rhino-tools-dev%[email protected]>
>> <rhino-tools-dev%[email protected]<rhino-tools-dev%[email protected]>
>> >
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/rhino-tools-dev?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Rhino Tools Dev" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<rhino-tools-dev%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/rhino-tools-dev?hl=en.
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Rhino Tools Dev" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<rhino-tools-dev%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rhino-tools-dev?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" 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/rhino-tools-dev?hl=en.

Reply via email to