Como comparar um Microsoft.CodeAnalysis.ITypeSymbol com um System.Type

Recebi com sucesso um ITypeSymbol de um SyntaxNode usando:

SemanticModel.GetTypeInfo(sytaxNode).ConvertedType

Agora eu gostaria de saber se issoITypeSymbol corresponde a umSystem.Type instância que está presente no meu código de execução, comotypeof(IEnumerable<int>) ousomeObject.GetType().

eu tentei

typeInfo.ConvertedType.ToString() == type.ToString()

Mas eles não usam as mesmas regras de formatação, por exemplo, para genéricos comoIEnumerable<int>

TypeInfo.ToString() == "System.Collections.Generic.IEnumerable<int>"

enquanto

typeof(IEnumerable<int>).ToString() == "System.Collections.Generic.IEnumerable`1[System.Int32]"

Além disso, acho que seria melhor comparar AssemblyQualifiedNames em vez de apenas o Namespace e digite o nome para evitar possíveis conflitos de nome.

Idealmente, eu gostaria de obter a instância System.Type real no meu código de execução que corresponde ao ITypeInfo que obtive do modelo semântico (desde que o assembly necessário esteja carregado e / ou disponível). Isso permitiria verificar se o tipo é atribuível a partir de outro tipo, etc.

questionAnswers(2)

yourAnswerToTheQuestion