如何使用 Roslyn 获取 IEnumerable<T> 的基础类型?
How to get underlying type for IEnumerable<T> with Roslyn?
如何从 ITypeSymbol
获取 IEnumerable<MyType>
的基础类型?我看到 ITypeSymbol.OriginalDefinition
包含 link 到 IEnumerable<>
,但是我从哪里可以得到 ITypeSymbol
for MyType
?
泛型类型参数是命名类型(相对于数组或指针)的一个特性。
您需要转换为INamedTypeSymbol
;然后你可以查看 TypeArguments
property.
旁注:要获取开放通用类型,请使用 ConstructedFrom
,而不是 OriginalDefinition
。
如何从 ITypeSymbol
获取 IEnumerable<MyType>
的基础类型?我看到 ITypeSymbol.OriginalDefinition
包含 link 到 IEnumerable<>
,但是我从哪里可以得到 ITypeSymbol
for MyType
?
泛型类型参数是命名类型(相对于数组或指针)的一个特性。
您需要转换为INamedTypeSymbol
;然后你可以查看 TypeArguments
property.
旁注:要获取开放通用类型,请使用 ConstructedFrom
,而不是 OriginalDefinition
。