/// <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); }
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>()); }
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); }
public static CodeAttributeDeclarationCollectionAssertions Should( this CodeAttributeDeclarationCollection attributes) { return(new CodeAttributeDeclarationCollectionAssertions(attributes.Cast <CodeAttributeDeclaration>())); }
//Extensions public static CodeAttributeDeclaration Find(this CodeAttributeDeclarationCollection attributes, params string[] attributeTypes) { return(attributes.Cast <CodeAttributeDeclaration>().FirstOrDefault(attribute => attributeTypes.Contains(attribute.AttributeType.BaseType))); }