Files
Telegrator/dev/Telegrator.RoslynGenerators/RoslynExtensions/SymbolsExtensions.cs
T

29 lines
712 B
C#
Raw Normal View History

2025-08-16 13:13:34 +04:00
using Microsoft.CodeAnalysis;
namespace Telegrator.RoslynGenerators.RoslynExtensions;
2025-08-16 13:13:34 +04:00
public static class SymbolsExtensions
{
public static bool IsAssignableFrom(this ITypeSymbol symbol, string className)
{
if (symbol.BaseType == null)
return false;
if (symbol.BaseType.Name == className)
return true;
return symbol.BaseType.IsAssignableFrom(className);
}
public static ITypeSymbol? Cast(this ITypeSymbol symbol, string className)
{
if (symbol.BaseType == null)
return null;
if (symbol.BaseType.Name == className)
return symbol.BaseType;
return symbol.BaseType.Cast(className);
}
}