Roslyn分析器中的TypeInfo.IsAssignableFrom

Che*_*hen 6 .net c# reflection roslyn roslyn-code-analysis

在我的Roslyn分析仪中,我得到Microsoft.CodeAnalysis.TypeInfo了一个参数

var argumentTypeInfo = semanticModel.GetTypeInfo(argumentSyntax.Expression);
Run Code Online (Sandbox Code Playgroud)

我还有另一个Microsoft.CodeAnalysis.TypeInfo被调用的实例targetTypeInfo.现在我想知道描述的类型targetTypeInfo是否可以从描述的类型中分配argumentTypeInfo.

我知道System.Reflection.TypeInfo有它的IsAssignableFrom方法,这正是我想要的.但两者之间的转换TypeInfo是个问题.在分析仪中获取类型关系的正确方法是什么?

小智 0

塔马斯的评论很有帮助。它朝着我找到的解决方案的方向发展。

现在人们可以使用这种Compilation.HasImplicitConversion(ITypeSymbol? fromType, ITypeSymbol? toType)方法。此处讨论了https://github.com/dotnet/roslyn/issues/9461,然后添加了PR #26719

当我发现这个问题时,这正是我想要的。