【发布时间】:2014-11-24 13:23:51
【问题描述】:
我需要获取特定符号的完整 CLR 名称。这意味着对于泛型类型,我需要将`1、`2 等附加到类型。现在,ISymbol 已经有一个属性 MetadataName 可以做到这一点。但它不包括周围的类型和命名空间,只给出手头符号的名称。
获取完全限定名称的常用选项,即通过ToDisplayString 在这里不太适用,因为它不会将MetadataName 用于其各个部分。
有这样的内置功能吗?还是我必须将ContainingSymbols 链与. 连接起来? (这个假设是否存在失效点?)
编辑:刚刚注意到,如果它是包含在另一种类型中的类型,则在各个名称之间需要一个 +,但除此之外,我猜使用 . 应该可以工作。
【问题讨论】:
-
请支持我在 CodePlex 上的 Roslyn 问题以获得此功能:roslyn.codeplex.com/workitem/297
-
Roslyn 团队成员为此创建了一个问题,请参阅 github.com/dotnet/roslyn/issues/1891