Hi All,

I am currently using Envers within a C# WebApi project.  Windsor is used 
for IoC.
I have a custom RevisionEntity which add a User property to audit the user 
who has made the data change.

To ensure all configurations were correct I started off with a "simple 
string here" being added in the NewRevision method;
    public class AuditRevisionListener : IRevisionListener
    {
                public void NewRevision(object revisionEntity)
        {
            ((AuditRevision)revisionEntity).User = "Simple string here;
        }
    }

and all persisted as expected.

Next step is to achieve a full User object to which I need to obtain the 
UserService;
    public class AuditRevisionListener : IRevisionListener
    {
        public void NewRevision(object revisionEntity)
        {
            var userServices = 
(IUserServices)GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IUserServices));

            var user = userServices.GetRequestingUser();

            ((AuditRevision)revisionEntity).User = user;
        }
    }

However, the DependencyResolver.GetService is throwing the error; 
"Cannot access a disposed object.  Object name: 'Scope cache was already 
disposed. This is most likely a bug in the calling code.'. "

I have also tried ctor injection during the Envers configuration but this 
also resulted with the above error;
            var auditConfiguration = new FluentConfiguration();
            var userServices = 
(IUserServices)GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IUserServices));
            auditConfiguration.SetRevisionEntity<AuditRevision>(r => r.Id, 
r => r.Timestamp, new AuditRevisionListener(userServices));
            auditConfiguration.Audit(GetAuditEntities());
            configuration.IntegrateWithEnvers(auditConfiguration);

For clarity, I use the DependencyResolver.GetService within an ActionFilter 
and all resolves correctly.

Does anyone have any ideas about what I am missing with either my Envers 
configuration or Windsor configuration?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to