public override void ProcessModel(IKernel kernel, ComponentModel model)
		{
			if (_MetaStore == null)
				_MetaStore = kernel.Resolve<ITransactionMetaInfoStore>();

			Contract.Assume(model.Implementation != null);

			Validate(model);
			AddInterceptor(model);
		}
		public TransactionInterceptor(IKernel kernel, ITransactionMetaInfoStore store)
		{
			Contract.Requires(kernel != null, "kernel must be non null");
			Contract.Requires(store != null, "store must be non null");
			Contract.Ensures(_State == InterceptorState.Constructed);

			_Kernel = kernel;
			_Store = store;
			_State = InterceptorState.Constructed;
		}
        public TransactionInterceptor(IKernel kernel, ITransactionMetaInfoStore store)
        {
            Contract.Requires(kernel != null, "kernel must be non null");
            Contract.Requires(store != null, "store must be non null");
            Contract.Ensures(_State == InterceptorState.Constructed);

            _Logger.Debug("created transaction interceptor");

            _Kernel = kernel;
            _Store  = store;
            _State  = InterceptorState.Constructed;
        }
        public override void ProcessModel(IKernel kernel, ComponentModel model)
        {
            if (_MetaStore == null)
            {
                _MetaStore = kernel.Resolve <ITransactionMetaInfoStore>();
            }

            Contract.Assume(model.Implementation != null);

            Validate(model);
            AddInterceptor(model);
        }
        public TransactionInterceptor(IContainer container, ITransactionMetaInfoStore store, ParentServiceRequestInfo parentServiceRequestInfo, AutoTxOptions autoTxOptions, ILoggerFactory loggerFactory)
        {
            Contract.Requires(container != null, "container must be non null");
            Contract.Requires(store != null, "store must be non null");
            Contract.Ensures(_State == InterceptorState.Constructed);

            _Container     = container;
            _Store         = store;
            _AutoTxOptions = autoTxOptions;
            _LoggerFactory = loggerFactory;
            _Logger        = loggerFactory.CreateLogger(GetType());
            _State         = InterceptorState.Constructed;

            _Logger.LogDebug($"created transaction interceptor for {parentServiceRequestInfo.ImplementationType}");

            SetInterceptedComponentModel(parentServiceRequestInfo);
        }
 public TransactionalComponentInspector(IContainer container)
 {
     _Container        = container;
     _MetaStore        = container.Resolve <ITransactionMetaInfoStore>();
     _ProxyTypeStorage = container.Resolve <ProxyTypeStorage>();
 }