private static AttributeSyntax GetAttributeSyntax(AttributeGenerationData data) { var syntax = SyntaxFactory.Attribute(NameSyntaxUtility.GetNameSyntax(data.m_AttributeName)); if (data.m_AttributeArguments != null && data.m_AttributeArguments.Count > 0) { syntax = syntax.WithArgumentList(GetAttributeArgumentListSyntax(data.m_AttributeArguments)); } return(syntax); }
// TODO: Extract Attribute Arguments private static List <AttributeGenerationData> ExtractAttributes(AttributeListSyntax[] attributeLists) { var dataList = new List <AttributeGenerationData>(); for (int i = 0; i < attributeLists.Length; i++) { var attributes = attributeLists[i].Attributes.ToArray(); for (int j = 0; j < attributes.Length; j++) { var attributeGenerationData = new AttributeGenerationData(); attributeGenerationData.m_AttributeName = attributes[j].Name.ToString(); dataList.Add(attributeGenerationData); } } return(dataList); }
private static AttributeListSyntax GetAttributeListSyntax(AttributeGenerationData data) { return(SyntaxFactory.AttributeList(SyntaxFactory.SingletonSeparatedList <AttributeSyntax>(GetAttributeSyntax(data)))); }