Example #1
0
        public void Initialization()
        {
            var method = MethodInfo.GetCurrentMethod();
            var customAttributeData = GetCustomAttributeData <DomainAspectAttribute> (method);
            var constructor         = NormalizingMemberInfoFromExpressionUtility.GetConstructor(() => new DomainAspectAttribute(""));

            var result = new AttributeConstruction(customAttributeData);

            Assert.That(result.ConstructorInfo, Is.EqualTo(constructor));
            Assert.That(result.ConstructorArguments, Has.Count.EqualTo(1));
            Assert.That(result.NamedArguments, Has.Count.EqualTo(1));
        }
        public Aspect Build(ICustomAttributeData attributeData)
        {
            var attribute = attributeData.CreateAttribute <AspectAttributeBase>();
            // throw if no aspectattributebase

            var construction     = new AttributeConstruction(attributeData);
            var pointcut         = _pointcutBuilder.Build(attributeData);
            var priorityArgument = attributeData.NamedArguments.SingleOrDefault(x => x.MemberInfo.Name == "Priority");
            var priority         = priorityArgument == null ? 0 : (int)priorityArgument.Value;

            return(Build(attributeData.Type, attribute, construction, pointcut, priority));
        }