C# 罗斯林';s GetTypeByMetadataName()和泛型类型

C# 罗斯林';s GetTypeByMetadataName()和泛型类型,c#,types,roslyn,C#,Types,Roslyn,我试图检索给定类型中的所有IMethodSymbols。对于封闭类型(即没有泛型的类型),我可以使用并传入完全限定的类型名 但是,对于开放类型(例如,MyClass),完全限定名似乎不起作用。我尝试过在不使用类型参数(MyClass)的情况下提供完全限定名,也尝试了使用封闭类型(MyClass),但这两种方法都不起作用 使用完全限定名查找此类型的最佳方法是什么?如注释中所述,编译器惯例是使用类名称,如MyClass,并将其表示为 MyClass`1 一个有效的例子: var tree = CS

我试图检索给定类型中的所有IMethodSymbols。对于封闭类型(即没有泛型的类型),我可以使用并传入完全限定的类型名

但是,对于开放类型(例如,
MyClass
),完全限定名似乎不起作用。我尝试过在不使用类型参数(
MyClass
)的情况下提供完全限定名,也尝试了使用封闭类型(
MyClass
),但这两种方法都不起作用


使用完全限定名查找此类型的最佳方法是什么?

如注释中所述,编译器惯例是使用类名称,如
MyClass
,并将其表示为

MyClass`1
一个有效的例子:

var tree = CSharpSyntaxTree.ParseText(@"
public class MyClass<T> {
    public static T Method()
    {
    }
}");

var mscorlib = new MetadataFileReference(typeof(object).Assembly.Location);
var compilation = CSharpCompilation.Create("MyCompilation",
       syntaxTrees: new[] { tree }, references: new[] { mscorlib });

var type = compilation.GetTypeByMetadataName("MyClass`1");
var-tree=CSharpSyntaxTree.ParseText(@)
公共类MyClass{
公共静态T方法()
{
}
}");
var mscorlib=新的MetadataFileReference(typeof(object).Assembly.Location);
var compilation=csharpcomilation.Create(“MyCompilation”,
syntaxTrees:new[]{tree},references:new[]{mscorlib});
var type=compilation.GetTypeByMetadataName(“MyClass`1”);

我原以为是MyClass`1。我怀疑泛型类型的标准命名模式适用:
MyClass`1
请看:你们是对的,添加`1正确检索类型。