/// <summary>
        /// Visits a <see cref="CodeAttributeDeclarationCollection"/>.
        /// </summary>
        /// <param name="codeAttributeDeclarationCollection">The <see cref="CodeAttributeDeclarationCollection"/> to visit.</param>
        protected override void VisitCodeAttributeDeclarationCollection(CodeAttributeDeclarationCollection codeAttributeDeclarationCollection)
        {
            CodeAttributeDeclaration[] sortedAttributes = codeAttributeDeclarationCollection.Cast <CodeAttributeDeclaration>().OrderBy(a => GetAttributeId(a)).ToArray();
            codeAttributeDeclarationCollection.Clear();
            codeAttributeDeclarationCollection.AddRange(sortedAttributes);

            base.VisitCodeAttributeDeclarationCollection(codeAttributeDeclarationCollection);
        }
Beispiel #2
0
        private IEnumerable <CodeAttributeArgument> GetCodeAttributeArguments <T>(CodeAttributeDeclarationCollection customAttributes) where T : Attribute
        {
            var attribute = customAttributes.Cast <CodeAttributeDeclaration>().FirstOrDefault(y => y.Name.EndsWith(typeof(T).Name));

            if (attribute == null)
            {
                return(null);
            }

            return(attribute?.Arguments.Cast <CodeAttributeArgument>());
        }
Beispiel #3
0
        private IEnumerable <string> GetAttributeValues <T>(CodeAttributeDeclarationCollection customAttributes) where T : Attribute
        {
            var attribute = customAttributes.Cast <CodeAttributeDeclaration>().FirstOrDefault(y => y.Name.EndsWith(typeof(T).Name));

            if (attribute != null)
            {
                var ctr = attribute?.Arguments.Cast <CodeAttributeArgument>()?.Select(x => x.Value as CodePrimitiveExpression);
                return(ctr?.Select(x => x.Value.ToString()));
            }

            return(null);
        }
Beispiel #4
0
 public static CodeAttributeDeclarationCollectionAssertions Should(
     this CodeAttributeDeclarationCollection attributes)
 {
     return(new CodeAttributeDeclarationCollectionAssertions(attributes.Cast <CodeAttributeDeclaration>()));
 }
Beispiel #5
0
 //Extensions
 public static CodeAttributeDeclaration Find(this CodeAttributeDeclarationCollection attributes, params string[] attributeTypes)
 {
     return(attributes.Cast <CodeAttributeDeclaration>().FirstOrDefault(attribute => attributeTypes.Contains(attribute.AttributeType.BaseType)));
 }