public ICommandingDependencyResolver UseAuditItemEnricher <TAuditItemEnricher>(ICommandingDependencyResolver commandingDependencyResolver) where TAuditItemEnricher : IAuditItemEnricher { lock (_auditItemEnricherPipelineLockObject) { if (_auditItemEnricherPipeline == null) { throw new AuditConfigurationException("The commanding system must be initialised with the UseCommanding method before any registering any audit item enrichers"); } _auditItemEnricherPipeline.AddEnricher <TAuditItemEnricher>(); } commandingDependencyResolver.TypeMapping <TAuditItemEnricher, TAuditItemEnricher>(); return(commandingDependencyResolver); }