public BeforeCommitTriggerDescriptor(Type entityType)
        {
            var triggerType   = typeof(IBeforeCommitTrigger <>).MakeGenericType(entityType);
            var triggerMethod = triggerType.GetMethod(nameof(IBeforeCommitTrigger <object> .BeforeCommit));

            _triggerType        = triggerType;
            _invocationDelegate = TriggerTypeDescriptorHelpers.GetWeakDelegate(triggerType, entityType, triggerMethod);
        }
示例#2
0
        public AfterRollbackTriggerDescriptor(Type entityType)
        {
            var triggerType   = typeof(IAfterRollbackTrigger <>).MakeGenericType(entityType);
            var triggerMethod = triggerType.GetMethod(nameof(IAfterRollbackTrigger <object> .AfterRollback));

            _triggerType        = triggerType;
            _invocationDelegate = TriggerTypeDescriptorHelpers.GetWeakDelegate(triggerType, entityType, triggerMethod);
        }
        public async Task CreateWeakDelegate_WrapsTargetMethod()
        {
            var triggerStub        = new TriggerStub <object>();
            var triggerContextStub = new TriggerContextStub <object>();
            var weakDelegate       = TriggerTypeDescriptorHelpers.GetWeakDelegate(typeof(IBeforeSaveTrigger <object>), typeof(object), typeof(IBeforeSaveTrigger <object>).GetMethod("BeforeSave"));

            await weakDelegate(triggerStub, triggerContextStub, default);

            Assert.NotEmpty(triggerStub.BeforeSaveInvocations);
        }