Files
InterfaceGenerator/InterfaceGenerator/SymbolExtensions.cs
T
2021-04-10 00:46:40 +02:00

25 lines
835 B
C#

using System.Collections.Generic;
using System.Linq;
using Microsoft.CodeAnalysis;
namespace InterfaceGenerator
{
internal static class SymbolExtensions
{
public static bool TryGetAttribute(
this ISymbol symbol,
INamedTypeSymbol attributeType,
out IEnumerable<AttributeData> attributes)
{
attributes = symbol.GetAttributes()
.Where(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeType));
return attributes.Any();
}
public static bool HasAttribute(this ISymbol symbol, INamedTypeSymbol attributeType)
{
return symbol.GetAttributes()
.Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeType));
}
}
}